code: def _read_para_dh_group_list(self, code, cbit, clen, *, desc, length, version):
          
          _dhid = list()
          for _ in range(clen):
              _dhid.append(_GROUP_ID.get(self._read_unpack(1), 'Unassigned'))
  
          dh_group_list = dict(
              type=desc,
              critical=cbit,
              length=clen,
              id=tuple(_dhid),
          )
  
          _plen = length - clen
          if _plen:
              self._read_fileng(_plen)
  
          return dh_group_list
docs: Read HIP DH_GROUP_LIST parameter.
  
          Structure of HIP DH_GROUP_LIST parameter [RFC 7401]:
               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            |
              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
              | DH GROUP ID #1| DH GROUP ID #2| DH GROUP ID #3| DH GROUP ID #4|
              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
              | DH GROUP ID #n|                Padding                        |
              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
              Octets      Bits        Name                    Description
                0           0     dh_group_list.type      Parameter Type
                1          15     dh_group_list.critical  Critical Bit
                2          16     dh_group_list.length    Length of Contents
                4          32     dh_group_list.id        DH GROUP ID