def _read_para_reg_from(self, code, cbit, clen, *, desc, length, version):
        """Read HIP REG_FROM parameter.

        Structure of HIP REG_FROM parameter [RFC 5770]:
             0                   1                   2                   3
             0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            |             Type              |             Length            |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            |             Port              |    Protocol   |     Reserved  |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            |                                                               |
            |                            Address                            |
            |                                                               |
            |                                                               |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

            Octets      Bits        Name                            Description
              0           0     reg_from.type               Parameter Type
              1          15     reg_from.critical           Critical Bit
              2          16     reg_from.length             Length of Contents
              4          32     reg_from.port               Port
              6          48     reg_from.protocol           Protocol
              7          56     -                           Reserved
              8          64     reg_from.ip                 Address (IPv6)

        """
        if clen != 20:
            raise ProtocolError(f'HIPv{version}: [Parano {code}] invalid format')

        _port = self._read_unpack(2)
        _ptcl = self._read_unpack(1)
        _resv = self._read_fileng(1)
        _addr = self._read_fileng(16)

        reg_from = dict(
            type=desc,
            critical=cbit,
            length=clen,
            port=_port,
            protocol=TP_PROTO.get(_ptcl),
            ip=ipaddress.ip_address(_addr),
        )

        return reg_from
Read HIP REG_FROM parameter.

        Structure of HIP REG_FROM parameter [RFC 5770]:
             0                   1                   2                   3
             0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            |             Type              |             Length            |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            |             Port              |    Protocol   |     Reserved  |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            |                                                               |
            |                            Address                            |
            |                                                               |
            |                                                               |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

            Octets      Bits        Name                            Description
              0           0     reg_from.type               Parameter Type
              1          15     reg_from.critical           Critical Bit
              2          16     reg_from.length             Length of Contents
              4          32     reg_from.port               Port
              6          48     reg_from.protocol           Protocol
              7          56     -                           Reserved
              8          64     reg_from.ip                 Address (IPv6)