Many of pypy-libtrace's classes have a new-instance function, so you can create a new object; this is most useful for handling encapsulated packets. These methods take a single argument, which may be an existing object, a byte array or a pypy CFFI array. In most cases the argument will be something you have unpacked from an incoming package. This allows you to work on encapsulated packets, e.g.
for pkt in trace:
trans = pkt.transport
if trans.proto != 41: # IPv6 over IPv4
continue
ip6 = plt.ip6(trans)
... # Process the encapsulated IPv6 packet
Class Methods | |
ip() |
ip(object or byte array) -> anIP |
Makes a new IP (IPv4) object | |
ip6() |
ip6bject or byte array) -> anIP6 |
Makes a new IP6 (IPv6) object | |
tcp() |
tcp(object or byte array) -> aTCP |
Makes a new TCP object | |
udp() |
udp(object or byte array) -> aUDPP |
Makes a new UDP object | |
icmp() |
icmp(object or byte array) -> anICMP |
Makes a new ICMP object | |
icmp6() |
icmp6(object or byte array) -> anICMP |
Makes a new ICMPv6 object |