def _read_opt_mpl(self, code, *, desc):
_type = self._read_opt_type(code)<EOL>_size = self._read_unpack(<NUM_LIT:1>)<EOL>if _size < <NUM_LIT:2>:<EOL><INDENT>raise ProtocolError(f'<STR_LIT>')<EOL><DEDENT>_smvr = self._read_binary(<NUM_LIT:1>)<EOL>_seqn = self._read_unpack(<NUM_LIT:1>)<EOL>opt = dict(<EOL>desc=desc,<EOL>type=_type,<EOL>length=_size + <NUM_LIT:2>,<EOL>seed_len=_HOPOPT_SEED.get(int(_smvr[:<NUM_LIT:2>], base=<NUM_LIT:2>)),<EOL>flags=dict(<EOL>max=True if int(_smvr[<NUM_LIT:2>], base=<NUM_LIT:2>) else False,<EOL>verification=True if int(_smvr[<NUM_LIT:3>], base=<NUM_LIT:2>) else False,<EOL>),<EOL>seq=_seqn,<EOL>)<EOL>_kind = _smvr[:<NUM_LIT:2>]<EOL>if _kind == '<STR_LIT>':<EOL><INDENT>if _size != <NUM_LIT:2>:<EOL><INDENT>raise ProtocolError(f'<STR_LIT>')<EOL><DEDENT><DEDENT>elif _kind == '<STR_LIT>':<EOL><INDENT>if _size != <NUM_LIT:4>:<EOL><INDENT>raise ProtocolError(f'<STR_LIT>')<EOL><DEDENT>opt['<STR_LIT>'] = self._read_unpack(<NUM_LIT:2>)<EOL><DEDENT>elif _kind == '<STR_LIT>':<EOL><INDENT>if _size != <NUM_LIT:10>:<EOL><INDENT>raise ProtocolError(f'<STR_LIT>')<EOL><DEDENT>opt['<STR_LIT>'] = self._read_unpack(<NUM_LIT:8>)<EOL><DEDENT>elif _kind == '<STR_LIT>':<EOL><INDENT>if _size != <NUM_LIT>:<EOL><INDENT>raise ProtocolError(f'<STR_LIT>')<EOL><DEDENT>opt['<STR_LIT>'] = self._read_unpack(<NUM_LIT:16>)<EOL><DEDENT>else:<EOL><INDENT>opt['<STR_LIT>'] = self._read_unpack(_size-<NUM_LIT:2>)<EOL><DEDENT>_plen = _size - opt['<STR_LIT>']<EOL>if _plen:<EOL><INDENT>self._read_fileng(_plen)<EOL><DEDENT>return opt<EOL>
Read HOPOPT MPL option.

        Structure of HOPOPT MPL option [RFC 7731]:
             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
                                            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                            |  Option Type  |  Opt Data Len |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            | S |M|V|  rsv  |   sequence    |      seed-id (optional)       |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

            Octets      Bits        Name                        Description
              0           0     hopopt.mpl.type             Option Type
              0           0     hopopt.mpl.type.value       Option Number
              0           0     hopopt.mpl.type.action      Action (01)
              0           2     hopopt.mpl.type.change      Change Flag (1)
              1           8     hopopt.mpl.length           Length of Option Data
              2          16     hopopt.mpl.seed_len         Seed-ID Length
              2          18     hopopt.mpl.flags            MPL Option Flags
              2          18     hopopt.mpl.max              Maximum SEQ Flag
              2          19     hopopt.mpl.verification     Verification Flag
              2          20     -                           Reserved
              3          24     hopopt.mpl.seq              Sequence
              4          32     hopopt.mpl.seed_id          Seed-ID