def _read_opt_rpl(self, code, *, desc):
_type = self._read_opt_type(code)<EOL>_size = self._read_unpack(<NUM_LIT:1>)<EOL>if _size < <NUM_LIT:4>:<EOL><INDENT>raise ProtocolError(f'<STR_LIT>')<EOL><DEDENT>_flag = self._read_binary(<NUM_LIT:1>)<EOL>_rpld = self._read_unpack(<NUM_LIT:1>)<EOL>_rank = self._read_unpack(<NUM_LIT:2>)<EOL>opt = dict(<EOL>desc=desc,<EOL>type=_type,<EOL>length=_size + <NUM_LIT:2>,<EOL>flags=dict(<EOL>down=True if int(_flag[<NUM_LIT:0>], base=<NUM_LIT:2>) else False,<EOL>rank_error=True if int(_flag[<NUM_LIT:1>], base=<NUM_LIT:2>) else False,<EOL>fwd_error=True if int(_flag[<NUM_LIT:2>], base=<NUM_LIT:2>) else False,<EOL>),<EOL>id=_rpld,<EOL>rank=_rank,<EOL>)<EOL>if _size > <NUM_LIT:4>:<EOL><INDENT>opt['<STR_LIT:data>'] = self._read_fileng(_size-<NUM_LIT:4>)<EOL><DEDENT>return opt<EOL>
Read IPv6_Opts RPL option.

        Structure of IPv6_Opts RPL option [RFC 6553]:
             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 |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            |O|R|F|0|0|0|0|0| RPLInstanceID |          SenderRank           |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            |                         (sub-TLVs)                            |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

            Octets      Bits        Name                            Description
              0           0     ipv6_opts.rpl.type              Option Type
              0           0     ipv6_opts.rpl.type.value        Option Number
              0           0     ipv6_opts.rpl.type.action       Action (01)
              0           2     ipv6_opts.rpl.type.change       Change Flag (1)
              1           8     ipv6_opts.rpl.length            Length of Option Data
              2          16     ipv6_opts.rpl.flags             RPL Option Flags
              2          16     ipv6_opts.rpl.flags.down        Down Flag
              2          17     ipv6_opts.rpl.flags.rank_error  Rank-Error Flag
              2          18     ipv6_opts.rpl.flags.fwd_error   Forwarding-Error Flag
              3          24     ipv6_opts.rpl.id                RPLInstanceID
              4          32     ipv6_opts.rpl.rank              SenderRank
              6          48     ipv6_opts.rpl.data              Sub-TLVs