def _read_mode_mptcp(self, size, kind):
bins = self._read_binary(<NUM_LIT:1>)<EOL>subt = int(bins[:<NUM_LIT:4>], base=<NUM_LIT:2>)    <EOL>bits = bins[<NUM_LIT:4>:]                 <EOL>dlen = size - <NUM_LIT:1>                 <EOL>func = mptcp_opt.get(subt)<EOL>if func is None:    <EOL><INDENT>temp = self._read_fileng(dlen)<EOL>data = dict(<EOL>kind=kind,<EOL>length=size,<EOL>subtype='<STR_LIT>',<EOL>data=bytes(chr(int(bits[:<NUM_LIT:4>], base=<NUM_LIT:2>)), encoding='<STR_LIT:utf-8>') + temp,<EOL>)<EOL><DEDENT>else:               <EOL><INDENT>data = func(self, bits, dlen, kind)<EOL><DEDENT>return data<EOL>
Read Multipath TCP option.

        Positional arguments:
            * size - int, length of option
            * kind - int, 30 (Multipath TCP)

        Returns:
            * dict -- extracted Multipath TCP (MP-TCP) option

        Structure of MP-TCP [RFC 6824]:
                                 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
            +---------------+---------------+-------+-----------------------+
            |     Kind      |    Length     |Subtype|                       |
            +---------------+---------------+-------+                       |
            |                     Subtype-specific data                     |
            |                       (variable length)                       |
            +---------------------------------------------------------------+

            Octets      Bits        Name                    Description
              0           0     tcp.mp.kind             Kind (30)
              1           8     tcp.mp.length           Length
              2          16     tcp.mp.subtype          Subtype
              2          20     tcp.mp.data             Subtype-specific Data