code: def _read_para_from(self, code, cbit, clen, *, desc, length, version):
          
          if clen != 16:
              raise ProtocolError(f'HIPv{version}: [Parano {code}] invalid format')
  
          _addr = self._read_fileng(16)
  
          from_ = dict(
              type=desc,
              critical=cbit,
              length=clen,
              ip=ipaddress.ip_address(_addr),
          )
  
          return from_
docs: Read HIP FROM parameter.
  
          Structure of HIP FROM parameter [RFC 8004]:
               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            |
              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
              |                                                               |
              |                             Address                           |
              |                                                               |
              |                                                               |
              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
              Octets      Bits        Name                            Description
                0           0     from.type                       Parameter Type
                1          15     from.critical                   Critical Bit
                2          16     from.length                     Length of Contents
                4          32     from.ip                         Address