def _read_mode_tr(self, size, kind):
        """Read Traceroute option.

        Positional arguments:
            size - int, length of option
            kind - int, 82 (TR)

        Returns:
            * dict -- extracted Traceroute (TR) option

        Structure of Traceroute (TR) option [RFC 1393][RFC 6814]:
             0               8              16              24
            +-+-+-+-+-+-+-+-+---------------+---------------+---------------+
            |F| C |  Number |    Length     |          ID Number            |
            +-+-+-+-+-+-+-+-+---------------+---------------+---------------+
            |      Outbound Hop Count       |       Return Hop Count        |
            +---------------+---------------+---------------+---------------+
            |                     Originator IP Address                     |
            +---------------+---------------+---------------+---------------+

            Octets      Bits        Name                    Description
              0           0     ip.tr.kind              Kind (82)
              0           0     ip.tr.type.copy         Copied Flag (0)
              0           1     ip.tr.type.class        Option Class (0)
              0           3     ip.tr.type.number       Option Number (18)
              1           8     ip.tr.length            Length (12)
              2          16     ip.tr.id                ID Number
              4          32     ip.tr.ohc               Outbound Hop Count
              6          48     ip.tr.rhc               Return Hop Count
              8          64     ip.tr.ip                Originator IP Address

        """
        if size != 12:
            raise ProtocolError(f'{self.alias}: [Optno {kind}] invalid format')

        _idnm = self._read_unpack(2)
        _ohcn = self._read_unpack(2)
        _rhcn = self._read_unpack(2)
        _ipad = self._read_ipv4_addr()

        data = dict(
            kind=kind,
            type=self._read_opt_type(kind),
            length=size,
            id=_idnm,
            ohc=_ohcn,
            rhc=_rhcn,
            ip=_ipad,
        )

        return data
Read Traceroute option.

        Positional arguments:
            size - int, length of option
            kind - int, 82 (TR)

        Returns:
            * dict -- extracted Traceroute (TR) option

        Structure of Traceroute (TR) option [RFC 1393][RFC 6814]:
             0               8              16              24
            +-+-+-+-+-+-+-+-+---------------+---------------+---------------+
            |F| C |  Number |    Length     |          ID Number            |
            +-+-+-+-+-+-+-+-+---------------+---------------+---------------+
            |      Outbound Hop Count       |       Return Hop Count        |
            +---------------+---------------+---------------+---------------+
            |                     Originator IP Address                     |
            +---------------+---------------+---------------+---------------+

            Octets      Bits        Name                    Description
              0           0     ip.tr.kind              Kind (82)
              0           0     ip.tr.type.copy         Copied Flag (0)
              0           1     ip.tr.type.class        Option Class (0)
              0           3     ip.tr.type.number       Option Number (18)
              1           8     ip.tr.length            Length (12)
              2          16     ip.tr.id                ID Number
              4          32     ip.tr.ohc               Outbound Hop Count
              6          48     ip.tr.rhc               Return Hop Count
              8          64     ip.tr.ip                Originator IP Address