def read_ipx(self, length):
if length is None:<EOL><INDENT>length = len(self)<EOL><DEDENT>_csum = self._read_fileng(<NUM_LIT:2>)<EOL>_tlen = self._read_unpack(<NUM_LIT:2>)<EOL>_ctrl = self._read_unpack(<NUM_LIT:1>)<EOL>_type = self._read_unpack(<NUM_LIT:1>)<EOL>_dsta = self._read_ipx_address()<EOL>_srca = self._read_ipx_address()<EOL>ipx = dict(<EOL>chksum=_csum,<EOL>len=_tlen,<EOL>count=_ctrl,<EOL>type=TYPE.get(_type),<EOL>dst=_dsta,<EOL>src=_srca,<EOL>)<EOL>proto = ipx['<STR_LIT:type>']<EOL>length = ipx['<STR_LIT>'] - <NUM_LIT:30><EOL>ipx['<STR_LIT>'] = self._read_packet(header=<NUM_LIT:30>, payload=length)<EOL>return self._decode_next_layer(ipx, proto, length)<EOL>
Read Internetwork Packet Exchange.

        Structure of IPX header [RFC 1132]:
            Octets      Bits        Name                    Description
              0           0     ipx.cksum               Checksum
              2          16     ipx.len                 Packet Length (header includes)
              4          32     ipx.count               Transport Control (hop count)
              5          40     ipx.type                Packet Type
              6          48     ipx.dst                 Destination Address
              18        144     ipx.src                 Source Address