var searchIndex = {}; searchIndex["pnet"] = {"doc":"# libpnet","items":[[0,"datalink","pnet","Support for sending and receiving data link layer packets",null,null],[3,"Config","pnet::datalink","A generic configuration type, encapsulating all options supported by each backend",null,null],[12,"write_buffer_size","","The size of buffer to use when writing packets. Defaults to 4096",0,null],[12,"read_buffer_size","","The size of buffer to use when reading packets. Defaults to 4096",0,null],[12,"channel_type","","Linux only: Specifies whether to read packets at the datalink layer or network layer.\nDefaults to Layer2",0,null],[12,"bpf_fd_attempts","","BPF/OS X only: The number of /dev/bpf* file descriptors to attempt before failing. Defaults\nto: 1000",0,null],[3,"NetworkInterface","","Represents a network interface and its associated addresses",null,null],[12,"name","","The name of the interface",1,null],[12,"index","","The interface index (operating system specific)",1,null],[12,"mac","","A MAC address for the interface",1,null],[12,"ips","","An IP addresses for the interface",1,null],[12,"flags","","Operating system specific flags for the interface",1,null],[4,"ChannelType","","Type of data link channel to present (Linux only)",null,null],[13,"Layer2","","Send and receive layer 2 packets directly, including headers",2,null],[13,"Layer3","","Send and receive "cooked" packets - send and receive network layer packets",2,null],[4,"Channel","","A channel for sending and receiving at the data link layer",null,null],[13,"Ethernet","","A datalink channel which sends and receives Ethernet packets",3,null],[13,"PleaseIncludeACatchAllVariantWhenMatchingOnThisEnum","","This variant should never be used",3,null],[5,"channel","","Create a new datalink channel for sending and receiving data",null,{"inputs":[{"name":"networkinterface"},{"name":"config"}],"output":{"name":"result"}}],[5,"interfaces","","Get a list of available network interfaces for the current machine.",null,{"inputs":[],"output":{"name":"vec"}}],[0,"linux","","Support for sending and receiving data link layer packets using Linux's AF_PACKET",null,null],[3,"Config","pnet::datalink::linux","Configuration for the Linux datalink backend",null,null],[12,"write_buffer_size","","The size of buffer to use when writing packets. Defaults to 4096",4,null],[12,"read_buffer_size","","The size of buffer to use when reading packets. Defaults to 4096",4,null],[12,"channel_type","","Specifies whether to read packets at the datalink layer or network layer.\nNOTE FIXME Currently ignored\nDefaults to Layer2",4,null],[5,"channel","","Create a data link channel using the Linux's AF_PACKET socket type",null,{"inputs":[{"name":"networkinterface"},{"name":"config"}],"output":{"name":"result"}}],[5,"interfaces","","Get a list of available network interfaces for the current machine.",null,{"inputs":[],"output":{"name":"vec"}}],[11,"eq","","",4,null],[11,"ne","","",4,null],[11,"hash","","",4,null],[11,"fmt","","",4,null],[11,"clone","","",4,null],[11,"from","","",4,{"inputs":[{"name":"config"}],"output":{"name":"config"}}],[11,"default","","",4,{"inputs":[],"output":{"name":"config"}}],[0,"dummy","pnet::datalink","Support for sending and receiving data link layer packets on a fake network managed\nby in memory FIFO queues. Useful for writing tests.",null,null],[3,"Config","pnet::datalink::dummy","Configuration for the dummy datalink backend. Contains `std::sync::mpsc`\nchannels that are used to communicate with the fake network.",null,null],[5,"channel","","Create a data link channel backed by FIFO queues. Useful for debugging and testing.\nSee `Config` for how to inject and read packets on this fake network.",null,{"inputs":[{"name":"networkinterface"},{"name":"config"}],"output":{"name":"result"}}],[5,"interfaces","","Get three fake interfaces generated with `dummy_interface(0..3)`.",null,{"inputs":[],"output":{"name":"vec"}}],[5,"dummy_interface","","Generates a fake `NetworkInterface`.\nThe name of the interface will be `ethX` where X is the integer `i`.\nThe index will be `i`.\nThe MAC will be `01:02:03:04:05:i`.",null,{"inputs":[{"name":"u8"}],"output":{"name":"networkinterface"}}],[11,"fmt","","",5,null],[11,"new","","Creates a new `Config` with the given channels as the backing network.\nWhen using this constructor `inject_handle` and `read_handle` will return `None`.\nThose handles must be kept track of elsewhere.",5,{"inputs":[{"name":"receiver"},{"name":"sender"}],"output":{"name":"config"}}],[11,"inject_handle","","Get the `Sender` handle that can inject packets in the fake network.\nOnly usable with `Config`s generated from `default()`",5,null],[11,"read_handle","","Get the `Receiver` handle where packets sent to the fake network can be read.\nOnly usable with `Config`s generated from `default()`",5,null],[11,"from","","Will not use the `datalink::Config`. This will simply call `dummy::Config::default()`.",5,{"inputs":[{"name":"config"}],"output":{"name":"config"}}],[11,"default","","Creates a default config with one input and one output channel. The handles used to inject\nto and read form the network can be fetched with `inject_handle()` and `read_handle()`",5,{"inputs":[],"output":{"name":"config"}}],[8,"EthernetDataLinkSender","pnet::datalink","Trait to enable sending $packet packets",null,null],[10,"build_and_send","","Create and send a number of packets",6,null],[10,"send_to","","Send a packet",6,null],[8,"EthernetDataLinkReceiver","","Structure for receiving packets at the data link layer. Should be constructed using\ndatalink_channel().",null,null],[10,"iter","","Returns an iterator over `EthernetPacket`s.",7,null],[8,"EthernetDataLinkChannelIterator","","An iterator over data link layer packets",null,null],[10,"next","","Get the next EthernetPacket in the channel",8,null],[11,"eq","","",2,null],[11,"ne","","",2,null],[11,"hash","","",2,null],[11,"fmt","","",2,null],[11,"clone","","",2,null],[11,"eq","","",0,null],[11,"ne","","",0,null],[11,"hash","","",0,null],[11,"fmt","","",0,null],[11,"clone","","",0,null],[11,"default","","",0,{"inputs":[],"output":{"name":"config"}}],[11,"hash","","",1,null],[11,"fmt","","",1,null],[11,"eq","","",1,null],[11,"ne","","",1,null],[11,"clone","","",1,null],[11,"mac_address","","Retrieve the MAC address associated with the interface",1,null],[11,"is_loopback","","Is the interface a loopback interface?",1,null],[0,"packet","pnet","Provides interfaces for interacting with packets and headers",null,null],[0,"ethernet","pnet::packet","Ethernet packet abstraction",null,null],[3,"Ethernet","pnet::packet::ethernet","Represents an Ethernet packet",null,null],[3,"EthernetPacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"MutableEthernetPacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"EthernetIterable","","Used to iterate over a slice of `EthernetPacket`s",null,null],[3,"EtherType","","Represents the Ethernet ethertype field.",null,null],[12,"0","","",9,null],[0,"EtherTypes","","EtherTypes defined at:\nhttp://www.iana.org/assignments/ieee-802-numbers/ieee-802-numbers.xhtml\nThese values should be used in the Ethernet EtherType field",null,null],[17,"Ipv4","pnet::packet::ethernet::EtherTypes","Internet Protocol version 4 (IPv4) [RFC7042]",null,null],[17,"Arp","","Address Resolution Protocol (ARP) [RFC7042]",null,null],[17,"WakeOnLan","","Wake on Lan",null,null],[17,"Rarp","","Reverse Address Resolution Protocol (RARP) [RFC903]",null,null],[17,"Ipv6","","Internet Protocol version 6 (IPv6) [RFC7042]",null,null],[17,"Vlan","","VLAN-tagged frame (IEEE 802.1Q)",null,null],[11,"clone","pnet::packet::ethernet","",10,null],[11,"fmt","","",10,null],[11,"eq","","",11,null],[11,"ne","","",11,null],[11,"eq","","",12,null],[11,"ne","","",12,null],[11,"new","","Constructs a new EthernetPacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",11,null],[11,"to_immutable","","Maps from a EthernetPacket to a EthernetPacket",11,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",11,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a Ethernet instance when converted into\na byte-array",11,{"inputs":[{"name":"ethernet"}],"output":{"name":"usize"}}],[11,"get_destination","","Get the value of the destination field",11,null],[11,"get_source","","Get the value of the source field",11,null],[11,"get_ethertype","","Get the value of the ethertype field",11,null],[11,"new","","Constructs a new MutableEthernetPacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",12,null],[11,"to_immutable","","Maps from a MutableEthernetPacket to a EthernetPacket",12,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",12,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a Ethernet instance when converted into\na byte-array",12,{"inputs":[{"name":"ethernet"}],"output":{"name":"usize"}}],[11,"populate","","Populates a EthernetPacket using a Ethernet structure",12,null],[11,"get_destination","","Get the value of the destination field",12,null],[11,"get_source","","Get the value of the source field",12,null],[11,"get_ethertype","","Get the value of the ethertype field",12,null],[11,"set_destination","","Set the value of the destination field",12,null],[11,"set_source","","Set the value of the source field",12,null],[11,"set_ethertype","","Set the value of the ethertype field",12,null],[11,"set_payload","","Set the value of the payload field (copies contents)",12,null],[11,"packet_size","","",11,null],[11,"packet_size","","",12,null],[11,"packet_mut","","",12,null],[11,"payload_mut","","",12,null],[11,"packet","","",12,null],[11,"payload","","",12,null],[11,"packet","","",11,null],[11,"payload","","",11,null],[11,"next","","",13,null],[11,"size_hint","","",13,null],[11,"from_packet","","",11,null],[11,"from_packet","","",12,null],[11,"fmt","","",11,null],[11,"fmt","","",12,null],[11,"clone","","",9,null],[11,"fmt","","",9,null],[11,"eq","","",9,null],[11,"ne","","",9,null],[11,"partial_cmp","","",9,null],[11,"lt","","",9,null],[11,"le","","",9,null],[11,"gt","","",9,null],[11,"ge","","",9,null],[11,"cmp","","",9,null],[11,"hash","","",9,null],[11,"new","","Construct a new EtherType",9,{"inputs":[{"name":"u16"}],"output":{"name":"ethertype"}}],[11,"to_primitive_values","","",9,null],[0,"gre","pnet::packet","Minimal GRE Packet implementation: suitable for inspection not generation (e.g. checksum not\nimplemented).",null,null],[3,"Gre","pnet::packet::gre","GRE (Generic Routing Encapsulation) Packet.",null,null],[3,"GrePacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"MutableGrePacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"GreIterable","","Used to iterate over a slice of `GrePacket`s",null,null],[3,"U16BE","","u16be, but we can't use that directly in a Vec :(",null,null],[3,"U16BEPacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"MutableU16BEPacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"U16BEIterable","","Used to iterate over a slice of `U16BEPacket`s",null,null],[3,"U32BE","","u32be, but we can't use that directly in a Vec :(",null,null],[3,"U32BEPacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"MutableU32BEPacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"U32BEIterable","","Used to iterate over a slice of `U32BEPacket`s",null,null],[11,"clone","","",14,null],[11,"fmt","","",14,null],[11,"eq","","",15,null],[11,"ne","","",15,null],[11,"eq","","",16,null],[11,"ne","","",16,null],[11,"new","","Constructs a new GrePacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",15,null],[11,"to_immutable","","Maps from a GrePacket to a GrePacket",15,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",15,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a Gre instance when converted into\na byte-array",15,{"inputs":[{"name":"gre"}],"output":{"name":"usize"}}],[11,"get_checksum_present","","Get the checksum_present field",15,null],[11,"get_routing_present","","Get the routing_present field",15,null],[11,"get_key_present","","Get the key_present field",15,null],[11,"get_sequence_present","","Get the sequence_present field",15,null],[11,"get_strict_source_route","","Get the strict_source_route field",15,null],[11,"get_recursion_control","","Get the recursion_control field",15,null],[11,"get_zero_flags","","Get the zero_flags field",15,null],[11,"get_version","","Get the version field",15,null],[11,"get_protocol_type","","Get the protocol_type field",15,null],[11,"get_checksum_raw","","Get the raw &[u8] value of the checksum field, without copying",15,null],[11,"get_checksum","","Get the value of the checksum field (copies contents)",15,null],[11,"get_checksum_iter","","Get the value of the checksum field as iterator",15,null],[11,"get_offset_raw","","Get the raw &[u8] value of the offset field, without copying",15,null],[11,"get_offset","","Get the value of the offset field (copies contents)",15,null],[11,"get_offset_iter","","Get the value of the offset field as iterator",15,null],[11,"get_key_raw","","Get the raw &[u8] value of the key field, without copying",15,null],[11,"get_key","","Get the value of the key field (copies contents)",15,null],[11,"get_key_iter","","Get the value of the key field as iterator",15,null],[11,"get_sequence_raw","","Get the raw &[u8] value of the sequence field, without copying",15,null],[11,"get_sequence","","Get the value of the sequence field (copies contents)",15,null],[11,"get_sequence_iter","","Get the value of the sequence field as iterator",15,null],[11,"get_routing_raw","","Get the raw &[u8] value of the routing field, without copying",15,null],[11,"get_routing","","Get the value of the routing field (copies contents)",15,null],[11,"new","","Constructs a new MutableGrePacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",16,null],[11,"to_immutable","","Maps from a MutableGrePacket to a GrePacket",16,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",16,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a Gre instance when converted into\na byte-array",16,{"inputs":[{"name":"gre"}],"output":{"name":"usize"}}],[11,"populate","","Populates a GrePacket using a Gre structure",16,null],[11,"get_checksum_present","","Get the checksum_present field",16,null],[11,"get_routing_present","","Get the routing_present field",16,null],[11,"get_key_present","","Get the key_present field",16,null],[11,"get_sequence_present","","Get the sequence_present field",16,null],[11,"get_strict_source_route","","Get the strict_source_route field",16,null],[11,"get_recursion_control","","Get the recursion_control field",16,null],[11,"get_zero_flags","","Get the zero_flags field",16,null],[11,"get_version","","Get the version field",16,null],[11,"get_protocol_type","","Get the protocol_type field",16,null],[11,"get_checksum_raw","","Get the raw &[u8] value of the checksum field, without copying",16,null],[11,"get_checksum","","Get the value of the checksum field (copies contents)",16,null],[11,"get_checksum_iter","","Get the value of the checksum field as iterator",16,null],[11,"get_offset_raw","","Get the raw &[u8] value of the offset field, without copying",16,null],[11,"get_offset","","Get the value of the offset field (copies contents)",16,null],[11,"get_offset_iter","","Get the value of the offset field as iterator",16,null],[11,"get_key_raw","","Get the raw &[u8] value of the key field, without copying",16,null],[11,"get_key","","Get the value of the key field (copies contents)",16,null],[11,"get_key_iter","","Get the value of the key field as iterator",16,null],[11,"get_sequence_raw","","Get the raw &[u8] value of the sequence field, without copying",16,null],[11,"get_sequence","","Get the value of the sequence field (copies contents)",16,null],[11,"get_sequence_iter","","Get the value of the sequence field as iterator",16,null],[11,"get_routing_raw","","Get the raw &[u8] value of the routing field, without copying",16,null],[11,"get_routing","","Get the value of the routing field (copies contents)",16,null],[11,"set_checksum_present","","Set the checksum_present field",16,null],[11,"set_routing_present","","Set the routing_present field",16,null],[11,"set_key_present","","Set the key_present field",16,null],[11,"set_sequence_present","","Set the sequence_present field",16,null],[11,"set_strict_source_route","","Set the strict_source_route field",16,null],[11,"set_recursion_control","","Set the recursion_control field",16,null],[11,"set_zero_flags","","Set the zero_flags field",16,null],[11,"set_version","","Set the version field",16,null],[11,"set_protocol_type","","Set the protocol_type field",16,null],[11,"get_checksum_raw_mut","","Get the raw &mut [u8] value of the checksum field, without copying",16,null],[11,"set_checksum","","Set the value of the checksum field (copies contents)",16,null],[11,"get_offset_raw_mut","","Get the raw &mut [u8] value of the offset field, without copying",16,null],[11,"set_offset","","Set the value of the offset field (copies contents)",16,null],[11,"get_key_raw_mut","","Get the raw &mut [u8] value of the key field, without copying",16,null],[11,"set_key","","Set the value of the key field (copies contents)",16,null],[11,"get_sequence_raw_mut","","Get the raw &mut [u8] value of the sequence field, without copying",16,null],[11,"set_sequence","","Set the value of the sequence field (copies contents)",16,null],[11,"get_routing_raw_mut","","Get the raw &mut [u8] value of the routing field, without copying",16,null],[11,"set_routing","","Set the value of the routing field (copies contents)",16,null],[11,"set_payload","","Set the value of the payload field (copies contents)",16,null],[11,"packet_size","","",15,null],[11,"packet_size","","",16,null],[11,"packet_mut","","",16,null],[11,"payload_mut","","",16,null],[11,"packet","","",16,null],[11,"payload","","",16,null],[11,"packet","","",15,null],[11,"payload","","",15,null],[11,"next","","",17,null],[11,"size_hint","","",17,null],[11,"from_packet","","",15,null],[11,"from_packet","","",16,null],[11,"fmt","","",15,null],[11,"fmt","","",16,null],[11,"clone","","",18,null],[11,"fmt","","",18,null],[11,"eq","","",19,null],[11,"ne","","",19,null],[11,"eq","","",20,null],[11,"ne","","",20,null],[11,"new","","Constructs a new U16BEPacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",19,null],[11,"to_immutable","","Maps from a U16BEPacket to a U16BEPacket",19,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",19,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a U16BE instance when converted into\na byte-array",19,{"inputs":[{"name":"u16be"}],"output":{"name":"usize"}}],[11,"get_number","","Get the number field",19,null],[11,"new","","Constructs a new MutableU16BEPacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",20,null],[11,"to_immutable","","Maps from a MutableU16BEPacket to a U16BEPacket",20,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",20,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a U16BE instance when converted into\na byte-array",20,{"inputs":[{"name":"u16be"}],"output":{"name":"usize"}}],[11,"populate","","Populates a U16BEPacket using a U16BE structure",20,null],[11,"get_number","","Get the number field",20,null],[11,"set_number","","Set the number field",20,null],[11,"set_unused","","Set the value of the unused field (copies contents)",20,null],[11,"packet_size","","",19,null],[11,"packet_size","","",20,null],[11,"packet_mut","","",20,null],[11,"payload_mut","","",20,null],[11,"packet","","",20,null],[11,"payload","","",20,null],[11,"packet","","",19,null],[11,"payload","","",19,null],[11,"next","","",21,null],[11,"size_hint","","",21,null],[11,"from_packet","","",19,null],[11,"from_packet","","",20,null],[11,"fmt","","",19,null],[11,"fmt","","",20,null],[11,"clone","","",22,null],[11,"fmt","","",22,null],[11,"eq","","",23,null],[11,"ne","","",23,null],[11,"eq","","",24,null],[11,"ne","","",24,null],[11,"new","","Constructs a new U32BEPacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",23,null],[11,"to_immutable","","Maps from a U32BEPacket to a U32BEPacket",23,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",23,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a U32BE instance when converted into\na byte-array",23,{"inputs":[{"name":"u32be"}],"output":{"name":"usize"}}],[11,"get_number","","Get the number field",23,null],[11,"new","","Constructs a new MutableU32BEPacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",24,null],[11,"to_immutable","","Maps from a MutableU32BEPacket to a U32BEPacket",24,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",24,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a U32BE instance when converted into\na byte-array",24,{"inputs":[{"name":"u32be"}],"output":{"name":"usize"}}],[11,"populate","","Populates a U32BEPacket using a U32BE structure",24,null],[11,"get_number","","Get the number field",24,null],[11,"set_number","","Set the number field",24,null],[11,"set_unused","","Set the value of the unused field (copies contents)",24,null],[11,"packet_size","","",23,null],[11,"packet_size","","",24,null],[11,"packet_mut","","",24,null],[11,"payload_mut","","",24,null],[11,"packet","","",24,null],[11,"payload","","",24,null],[11,"packet","","",23,null],[11,"payload","","",23,null],[11,"next","","",25,null],[11,"size_hint","","",25,null],[11,"from_packet","","",23,null],[11,"from_packet","","",24,null],[11,"fmt","","",23,null],[11,"fmt","","",24,null],[0,"ip","pnet::packet","Defines the type and constants for IP next header/next level protocol\nfields.",null,null],[3,"IpNextHeaderProtocol","pnet::packet::ip","Represents an IPv4 next level protocol, or an IPv6 next header protocol,\nsee `IpNextHeaderProtocols` for a list of values.",null,null],[12,"0","","",26,null],[0,"IpNextHeaderProtocols","","Protocol numbers as defined at:\nhttp://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml\nAbove protocol numbers last updated: 2014-01-16\nThese values should be used in either the IPv4 Next Level Protocol field\nor the IPv6 Next Header field.\nNOTE Everything here is pretending to be an enum, but with namespacing by\n default, so we allow breaking style guidelines.",null,null],[17,"Hopopt","pnet::packet::ip::IpNextHeaderProtocols","IPv6 Hop-by-Hop Option [RFC2460]",null,null],[17,"Icmp","","Internet Control Message [RFC792]",null,null],[17,"Igmp","","Internet Group Management [RFC1112]",null,null],[17,"Ggp","","Gateway-to-Gateway [RFC823]",null,null],[17,"Ipv4","","IPv4 encapsulation [RFC2003]",null,null],[17,"St","","Stream [RFC1190][RFC1819]",null,null],[17,"Tcp","","Transmission Control [RFC793]",null,null],[17,"Cbt","","CBT",null,null],[17,"Egp","","Exterior Gateway Protocol [RFC888]",null,null],[17,"Igp","","any private interior gateway (used by Cisco for their IGRP)",null,null],[17,"BbnRccMon","","BBN RCC Monitoring",null,null],[17,"NvpII","","Network Voice Protocol [RFC741]",null,null],[17,"Pup","","PUP",null,null],[17,"Argus","","ARGUS",null,null],[17,"Emcon","","EMCON",null,null],[17,"Xnet","","Cross Net Debugger",null,null],[17,"Chaos","","Chaos",null,null],[17,"Udp","","User Datagram [RFC768]",null,null],[17,"Mux","","Multiplexing",null,null],[17,"DcnMeas","","DCN Measurement Subsystems",null,null],[17,"Hmp","","Host Monitoring [RFC869]",null,null],[17,"Prm","","Packet Radio Measurement",null,null],[17,"XnsIdp","","XEROX NS IDP",null,null],[17,"Trunk1","","Trunk-1",null,null],[17,"Trunk2","","Trunk-2",null,null],[17,"Leaf1","","Leaf-1",null,null],[17,"Leaf2","","Leaf-2",null,null],[17,"Rdp","","Reliable Data Protocol [RFC908]",null,null],[17,"Irtp","","Internet Reliable Transaction [RFC938]",null,null],[17,"IsoTp4","","ISO Transport Protocol Class 4 [RFC905]",null,null],[17,"Netblt","","Bulk Data Transfer Protocol [RFC969]",null,null],[17,"MfeNsp","","MFE Network Services Protocol",null,null],[17,"MeritInp","","MERIT Internodal Protocol",null,null],[17,"Dccp","","Datagram Congestion Control Protocol [RFC4340]",null,null],[17,"ThreePc","","Third Party Connect Protocol",null,null],[17,"Idpr","","Inter-Domain Policy Routing Protocol",null,null],[17,"Xtp","","XTP",null,null],[17,"Ddp","","Datagram Delivery Protocol",null,null],[17,"IdprCmtp","","IDPR Control Message Transport Proto",null,null],[17,"TpPlusPlus","","TP++ Transport Protocol",null,null],[17,"Il","","IL Transport Protocol",null,null],[17,"Ipv6","","IPv6 encapsulation [RFC2473]",null,null],[17,"Sdrp","","Source Demand Routing Protocol",null,null],[17,"Ipv6Route","","Routing Header for IPv6",null,null],[17,"Ipv6Frag","","Fragment Header for IPv6",null,null],[17,"Idrp","","Inter-Domain Routing Protocol",null,null],[17,"Rsvp","","Reservation Protocol [RFC2205][RFC3209]",null,null],[17,"Gre","","Generic Routing Encapsulation [RFC1701]",null,null],[17,"Dsr","","Dynamic Source Routing Protocol [RFC4728]",null,null],[17,"Bna","","BNA",null,null],[17,"Esp","","Encap Security Payload [RFC4303]",null,null],[17,"Ah","","Authentication Header [RFC4302]",null,null],[17,"INlsp","","Integrated Net Layer Security TUBA",null,null],[17,"Swipe","","IP with Encryption",null,null],[17,"Narp","","NBMA Address Resolution Protocol [RFC1735]",null,null],[17,"Mobile","","IP Mobility",null,null],[17,"Tlsp","","Transport Layer Security Protocol using Kryptonet key management",null,null],[17,"Skip","","SKIP",null,null],[17,"Ipv6Icmp","","ICMP for IPv6 [RFC2460]",null,null],[17,"Ipv6NoNxt","","No Next Header for IPv6 [RFC2460]",null,null],[17,"Ipv6Opts","","Destination Options for IPv6 [RFC2460]",null,null],[17,"HostInternal","","any host internal protocol",null,null],[17,"Cftp","","CFTP",null,null],[17,"LocalNetwork","","any local network",null,null],[17,"SatExpak","","SATNET and Backroom EXPAK",null,null],[17,"Kryptolan","","Kryptolan",null,null],[17,"Rvd","","MIT Remote Virtual Disk Protocol",null,null],[17,"Ippc","","Internet Pluribus Packet Core",null,null],[17,"DistributedFs","","any distributed file system",null,null],[17,"SatMon","","SATNET Monitoring",null,null],[17,"Visa","","VISA Protocol",null,null],[17,"Ipcv","","Internet Packet Core Utility",null,null],[17,"Cpnx","","Computer Protocol Network Executive",null,null],[17,"Cphb","","Computer Protocol Heart Beat",null,null],[17,"Wsn","","Wang Span Network",null,null],[17,"Pvp","","Packet Video Protocol",null,null],[17,"BrSatMon","","Backroom SATNET Monitoring",null,null],[17,"SunNd","","SUN ND PROTOCOL-Temporary",null,null],[17,"WbMon","","WIDEBAND Monitoring",null,null],[17,"WbExpak","","WIDEBAND EXPAK",null,null],[17,"IsoIp","","ISO Internet Protocol",null,null],[17,"Vmtp","","VMTP",null,null],[17,"SecureVmtp","","SECURE-VMTP",null,null],[17,"Vines","","VINES",null,null],[17,"TtpOrIptm","","Transaction Transport Protocol/IP Traffic Manager",null,null],[17,"NsfnetIgp","","NSFNET-IGP",null,null],[17,"Dgp","","Dissimilar Gateway Protocol",null,null],[17,"Tcf","","TCF",null,null],[17,"Eigrp","","EIGRP",null,null],[17,"OspfigP","","OSPFIGP [RFC1583][RFC2328][RFC5340]",null,null],[17,"SpriteRpc","","Sprite RPC Protocol",null,null],[17,"Larp","","Locus Address Resolution Protocol",null,null],[17,"Mtp","","Multicast Transport Protocol",null,null],[17,"Ax25","","AX.25 Frames",null,null],[17,"IpIp","","IP-within-IP Encapsulation Protocol",null,null],[17,"Micp","","Mobile Internetworking Control Pro.",null,null],[17,"SccSp","","Semaphore Communications Sec. Pro.",null,null],[17,"Etherip","","Ethernet-within-IP Encapsulation [RFC3378]",null,null],[17,"Encap","","Encapsulation Header [RFC1241]",null,null],[17,"PrivEncryption","","any private encryption scheme",null,null],[17,"Gmtp","","GMTP",null,null],[17,"Ifmp","","Ipsilon Flow Management Protocol",null,null],[17,"Pnni","","PNNI over IP",null,null],[17,"Pim","","Protocol Independent Multicast [RFC4601]",null,null],[17,"Aris","","ARIS",null,null],[17,"Scps","","SCPS",null,null],[17,"Qnx","","QNX",null,null],[17,"AN","","Active Networks",null,null],[17,"IpComp","","IP Payload Compression Protocol [RFC2393]",null,null],[17,"Snp","","Sitara Networks Protocol",null,null],[17,"CompaqPeer","","Compaq Peer Protocol",null,null],[17,"IpxInIp","","IPX in IP",null,null],[17,"Vrrp","","Virtual Router Redundancy Protocol [RFC5798]",null,null],[17,"Pgm","","PGM Reliable Transport Protocol",null,null],[17,"ZeroHop","","any 0-hop protocol",null,null],[17,"L2tp","","Layer Two Tunneling Protocol [RFC3931]",null,null],[17,"Ddx","","D-II Data Exchange (DDX)",null,null],[17,"Iatp","","Interactive Agent Transfer Protocol",null,null],[17,"Stp","","Schedule Transfer Protocol",null,null],[17,"Srp","","SpectraLink Radio Protocol",null,null],[17,"Uti","","UTI",null,null],[17,"Smp","","Simple Message Protocol",null,null],[17,"Sm","","Simple Multicast Protocol",null,null],[17,"Ptp","","Performance Transparency Protocol",null,null],[17,"IsisOverIpv4","","",null,null],[17,"Fire","","",null,null],[17,"Crtp","","Combat Radio Transport Protocol",null,null],[17,"Crudp","","Combat Radio User Datagram",null,null],[17,"Sscopmce","","",null,null],[17,"Iplt","","",null,null],[17,"Sps","","Secure Packet Shield",null,null],[17,"Pipe","","Private IP Encapsulation within IP",null,null],[17,"Sctp","","Stream Control Transmission Protocol",null,null],[17,"Fc","","Fibre Channel [RFC6172]",null,null],[17,"RsvpE2eIgnore","","[RFC3175]",null,null],[17,"MobilityHeader","","[RFC6275]",null,null],[17,"UdpLite","","[RFC3828]",null,null],[17,"MplsInIp","","[RFC4023]",null,null],[17,"Manet","","MANET Protocols [RFC5498]",null,null],[17,"Hip","","Host Identity Protocol [RFC5201]",null,null],[17,"Shim6","","Shim6 Protocol [RFC5533]",null,null],[17,"Wesp","","Wrapped Encapsulating Security Payload [RFC5840]",null,null],[17,"Rohc","","Robust Header Compression [RFC5858]",null,null],[17,"Test1","","Use for experimentation and testing [RFC3692]",null,null],[17,"Test2","","Use for experimentation and testing [RFC3692]",null,null],[17,"Reserved","","",null,null],[11,"hash","pnet::packet::ip","",26,null],[11,"cmp","","",26,null],[11,"partial_cmp","","",26,null],[11,"lt","","",26,null],[11,"le","","",26,null],[11,"gt","","",26,null],[11,"ge","","",26,null],[11,"eq","","",26,null],[11,"ne","","",26,null],[11,"fmt","","",26,null],[11,"clone","","",26,null],[11,"new","","Create a new IpNextHeaderProtocol",26,{"inputs":[{"name":"u8"}],"output":{"name":"ipnextheaderprotocol"}}],[11,"to_primitive_values","","",26,null],[0,"ipv4","pnet::packet","IPv4 packet abstraction",null,null],[3,"Ipv4OptionNumber","pnet::packet::ipv4","Represents an IPv4 option",null,null],[12,"0","","",27,null],[3,"Ipv4","","Represents an IPv4 Packet",null,null],[3,"Ipv4Packet","","A structure enabling manipulation of on the wire packets",null,null],[3,"MutableIpv4Packet","","A structure enabling manipulation of on the wire packets",null,null],[3,"Ipv4Iterable","","Used to iterate over a slice of `Ipv4Packet`s",null,null],[3,"Ipv4Option","","Represents the IPv4 Option field",null,null],[3,"Ipv4OptionPacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"MutableIpv4OptionPacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"Ipv4OptionIterable","","Used to iterate over a slice of `Ipv4OptionPacket`s",null,null],[5,"checksum","","Calculates the checksum of an IPv4 packet",null,{"inputs":[{"name":"ipv4packet"}],"output":{"name":"u16be"}}],[0,"Ipv4Flags","","IPv4 header flags",null,null],[17,"DontFragment","pnet::packet::ipv4::Ipv4Flags","Don't Fragment flag",null,null],[17,"MoreFragments","","More Fragments flag",null,null],[0,"Ipv4OptionNumbers","pnet::packet::ipv4","IPv4 header options numbers as defined in\nhttp://www.iana.org/assignments/ip-parameters/ip-parameters.xhtml",null,null],[17,"EOL","pnet::packet::ipv4::Ipv4OptionNumbers","End of Options List",null,null],[17,"NOP","","No Operation",null,null],[17,"SEC","","Security",null,null],[17,"LSR","","Loose Source Route",null,null],[17,"TS","","Time Stamp",null,null],[17,"ESEC","","Extended Security",null,null],[17,"CIPSO","","Commercial Security",null,null],[17,"RR","","Record Route",null,null],[17,"SID","","Stream ID",null,null],[17,"SSR","","Strict Source Route",null,null],[17,"ZSU","","Experimental Measurement",null,null],[17,"MTUP","","MTU Probe",null,null],[17,"MTUR","","MTU Reply",null,null],[17,"FINN","","Experimental Flow Control",null,null],[17,"VISA","","Experimental Access Control",null,null],[17,"ENCODE","","ENCODE",null,null],[17,"IMITD","","IMI Traffic Descriptor",null,null],[17,"EIP","","Extended Internet Protocol",null,null],[17,"TR","","Traceroute",null,null],[17,"ADDEXT","","Address Extension",null,null],[17,"RTRALT","","Router Alert",null,null],[17,"SDB","","Selective Directed Broadcast",null,null],[17,"DPS","","Dynamic Packet State",null,null],[17,"UMP","","Upstream Multicast Pkt.",null,null],[17,"QS","","Quick-Start",null,null],[17,"EXP","","RFC3692-style Experiment",null,null],[11,"clone","pnet::packet::ipv4","",27,null],[11,"fmt","","",27,null],[11,"eq","","",27,null],[11,"ne","","",27,null],[11,"partial_cmp","","",27,null],[11,"lt","","",27,null],[11,"le","","",27,null],[11,"gt","","",27,null],[11,"ge","","",27,null],[11,"cmp","","",27,null],[11,"hash","","",27,null],[11,"new","","Create a new Ipv4OptionNumber",27,{"inputs":[{"name":"u8"}],"output":{"name":"ipv4optionnumber"}}],[11,"to_primitive_values","","",27,null],[11,"clone","","",28,null],[11,"fmt","","",28,null],[11,"eq","","",29,null],[11,"ne","","",29,null],[11,"eq","","",30,null],[11,"ne","","",30,null],[11,"new","","Constructs a new Ipv4Packet. If the provided buffer is less than the minimum required\npacket size, this will return None.",29,null],[11,"to_immutable","","Maps from a Ipv4Packet to a Ipv4Packet",29,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",29,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a Ipv4 instance when converted into\na byte-array",29,{"inputs":[{"name":"ipv4"}],"output":{"name":"usize"}}],[11,"get_version","","Get the version field",29,null],[11,"get_header_length","","Get the header_length field",29,null],[11,"get_dscp","","Get the dscp field",29,null],[11,"get_ecn","","Get the ecn field",29,null],[11,"get_total_length","","Get the total_length field",29,null],[11,"get_identification","","Get the identification field",29,null],[11,"get_flags","","Get the flags field",29,null],[11,"get_fragment_offset","","Get the fragment_offset field",29,null],[11,"get_ttl","","Get the ttl field",29,null],[11,"get_next_level_protocol","","Get the value of the next_level_protocol field",29,null],[11,"get_checksum","","Get the checksum field",29,null],[11,"get_source","","Get the value of the source field",29,null],[11,"get_destination","","Get the value of the destination field",29,null],[11,"get_options_raw","","Get the raw &[u8] value of the options field, without copying",29,null],[11,"get_options","","Get the value of the options field (copies contents)",29,null],[11,"get_options_iter","","Get the value of the options field as iterator",29,null],[11,"new","","Constructs a new MutableIpv4Packet. If the provided buffer is less than the minimum required\npacket size, this will return None.",30,null],[11,"to_immutable","","Maps from a MutableIpv4Packet to a Ipv4Packet",30,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",30,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a Ipv4 instance when converted into\na byte-array",30,{"inputs":[{"name":"ipv4"}],"output":{"name":"usize"}}],[11,"populate","","Populates a Ipv4Packet using a Ipv4 structure",30,null],[11,"get_version","","Get the version field",30,null],[11,"get_header_length","","Get the header_length field",30,null],[11,"get_dscp","","Get the dscp field",30,null],[11,"get_ecn","","Get the ecn field",30,null],[11,"get_total_length","","Get the total_length field",30,null],[11,"get_identification","","Get the identification field",30,null],[11,"get_flags","","Get the flags field",30,null],[11,"get_fragment_offset","","Get the fragment_offset field",30,null],[11,"get_ttl","","Get the ttl field",30,null],[11,"get_next_level_protocol","","Get the value of the next_level_protocol field",30,null],[11,"get_checksum","","Get the checksum field",30,null],[11,"get_source","","Get the value of the source field",30,null],[11,"get_destination","","Get the value of the destination field",30,null],[11,"get_options_raw","","Get the raw &[u8] value of the options field, without copying",30,null],[11,"get_options","","Get the value of the options field (copies contents)",30,null],[11,"get_options_iter","","Get the value of the options field as iterator",30,null],[11,"set_version","","Set the version field",30,null],[11,"set_header_length","","Set the header_length field",30,null],[11,"set_dscp","","Set the dscp field",30,null],[11,"set_ecn","","Set the ecn field",30,null],[11,"set_total_length","","Set the total_length field",30,null],[11,"set_identification","","Set the identification field",30,null],[11,"set_flags","","Set the flags field",30,null],[11,"set_fragment_offset","","Set the fragment_offset field",30,null],[11,"set_ttl","","Set the ttl field",30,null],[11,"set_next_level_protocol","","Set the value of the next_level_protocol field",30,null],[11,"set_checksum","","Set the checksum field",30,null],[11,"set_source","","Set the value of the source field",30,null],[11,"set_destination","","Set the value of the destination field",30,null],[11,"get_options_raw_mut","","Get the raw &mut [u8] value of the options field, without copying",30,null],[11,"set_options","","Set the value of the options field (copies contents)",30,null],[11,"set_payload","","Set the value of the payload field (copies contents)",30,null],[11,"packet_size","","",29,null],[11,"packet_size","","",30,null],[11,"packet_mut","","",30,null],[11,"payload_mut","","",30,null],[11,"packet","","",30,null],[11,"payload","","",30,null],[11,"packet","","",29,null],[11,"payload","","",29,null],[11,"next","","",31,null],[11,"size_hint","","",31,null],[11,"from_packet","","",29,null],[11,"from_packet","","",30,null],[11,"fmt","","",29,null],[11,"fmt","","",30,null],[11,"clone","","",32,null],[11,"fmt","","",32,null],[11,"eq","","",33,null],[11,"ne","","",33,null],[11,"eq","","",34,null],[11,"ne","","",34,null],[11,"new","","Constructs a new Ipv4OptionPacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",33,null],[11,"to_immutable","","Maps from a Ipv4OptionPacket to a Ipv4OptionPacket",33,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",33,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a Ipv4Option instance when converted into\na byte-array",33,{"inputs":[{"name":"ipv4option"}],"output":{"name":"usize"}}],[11,"get_copied","","Get the copied field",33,null],[11,"get_class","","Get the class field",33,null],[11,"get_number","","Get the value of the number field",33,null],[11,"get_length_raw","","Get the raw &[u8] value of the length field, without copying",33,null],[11,"get_length","","Get the value of the length field (copies contents)",33,null],[11,"new","","Constructs a new MutableIpv4OptionPacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",34,null],[11,"to_immutable","","Maps from a MutableIpv4OptionPacket to a Ipv4OptionPacket",34,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",34,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a Ipv4Option instance when converted into\na byte-array",34,{"inputs":[{"name":"ipv4option"}],"output":{"name":"usize"}}],[11,"populate","","Populates a Ipv4OptionPacket using a Ipv4Option structure",34,null],[11,"get_copied","","Get the copied field",34,null],[11,"get_class","","Get the class field",34,null],[11,"get_number","","Get the value of the number field",34,null],[11,"get_length_raw","","Get the raw &[u8] value of the length field, without copying",34,null],[11,"get_length","","Get the value of the length field (copies contents)",34,null],[11,"set_copied","","Set the copied field",34,null],[11,"set_class","","Set the class field",34,null],[11,"set_number","","Set the value of the number field",34,null],[11,"get_length_raw_mut","","Get the raw &mut [u8] value of the length field, without copying",34,null],[11,"set_length","","Set the value of the length field (copies contents)",34,null],[11,"set_data","","Set the value of the data field (copies contents)",34,null],[11,"packet_size","","",33,null],[11,"packet_size","","",34,null],[11,"packet_mut","","",34,null],[11,"payload_mut","","",34,null],[11,"packet","","",34,null],[11,"payload","","",34,null],[11,"packet","","",33,null],[11,"payload","","",33,null],[11,"next","","",35,null],[11,"size_hint","","",35,null],[11,"from_packet","","",33,null],[11,"from_packet","","",34,null],[11,"fmt","","",33,null],[11,"fmt","","",34,null],[0,"ipv6","pnet::packet","IPv6 packet abstraction",null,null],[3,"Ipv6","pnet::packet::ipv6","Represents an IPv6 Packet",null,null],[3,"Ipv6Packet","","A structure enabling manipulation of on the wire packets",null,null],[3,"MutableIpv6Packet","","A structure enabling manipulation of on the wire packets",null,null],[3,"Ipv6Iterable","","Used to iterate over a slice of `Ipv6Packet`s",null,null],[11,"clone","","",36,null],[11,"fmt","","",36,null],[11,"eq","","",37,null],[11,"ne","","",37,null],[11,"eq","","",38,null],[11,"ne","","",38,null],[11,"new","","Constructs a new Ipv6Packet. If the provided buffer is less than the minimum required\npacket size, this will return None.",37,null],[11,"to_immutable","","Maps from a Ipv6Packet to a Ipv6Packet",37,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",37,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a Ipv6 instance when converted into\na byte-array",37,{"inputs":[{"name":"ipv6"}],"output":{"name":"usize"}}],[11,"get_version","","Get the version field",37,null],[11,"get_traffic_class","","Get the traffic_class field",37,null],[11,"get_flow_label","","Get the flow_label field",37,null],[11,"get_payload_length","","Get the payload_length field",37,null],[11,"get_next_header","","Get the value of the next_header field",37,null],[11,"get_hop_limit","","Get the hop_limit field",37,null],[11,"get_source","","Get the value of the source field",37,null],[11,"get_destination","","Get the value of the destination field",37,null],[11,"new","","Constructs a new MutableIpv6Packet. If the provided buffer is less than the minimum required\npacket size, this will return None.",38,null],[11,"to_immutable","","Maps from a MutableIpv6Packet to a Ipv6Packet",38,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",38,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a Ipv6 instance when converted into\na byte-array",38,{"inputs":[{"name":"ipv6"}],"output":{"name":"usize"}}],[11,"populate","","Populates a Ipv6Packet using a Ipv6 structure",38,null],[11,"get_version","","Get the version field",38,null],[11,"get_traffic_class","","Get the traffic_class field",38,null],[11,"get_flow_label","","Get the flow_label field",38,null],[11,"get_payload_length","","Get the payload_length field",38,null],[11,"get_next_header","","Get the value of the next_header field",38,null],[11,"get_hop_limit","","Get the hop_limit field",38,null],[11,"get_source","","Get the value of the source field",38,null],[11,"get_destination","","Get the value of the destination field",38,null],[11,"set_version","","Set the version field",38,null],[11,"set_traffic_class","","Set the traffic_class field",38,null],[11,"set_flow_label","","Set the flow_label field",38,null],[11,"set_payload_length","","Set the payload_length field",38,null],[11,"set_next_header","","Set the value of the next_header field",38,null],[11,"set_hop_limit","","Set the hop_limit field",38,null],[11,"set_source","","Set the value of the source field",38,null],[11,"set_destination","","Set the value of the destination field",38,null],[11,"set_payload","","Set the value of the payload field (copies contents)",38,null],[11,"packet_size","","",37,null],[11,"packet_size","","",38,null],[11,"packet_mut","","",38,null],[11,"payload_mut","","",38,null],[11,"packet","","",38,null],[11,"payload","","",38,null],[11,"packet","","",37,null],[11,"payload","","",37,null],[11,"next","","",39,null],[11,"size_hint","","",39,null],[11,"from_packet","","",37,null],[11,"from_packet","","",38,null],[11,"fmt","","",37,null],[11,"fmt","","",38,null],[0,"udp","pnet::packet","UDP packet abstraction",null,null],[3,"Udp","pnet::packet::udp","Represents an UDP Packet",null,null],[3,"UdpPacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"MutableUdpPacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"UdpIterable","","Used to iterate over a slice of `UdpPacket`s",null,null],[5,"ipv4_checksum","","Calculate the checksum for a packet built on IPv4",null,{"inputs":[{"name":"udppacket"},{"name":"ipv4addr"},{"name":"ipv4addr"},{"name":"ipnextheaderprotocol"}],"output":{"name":"u16be"}}],[5,"ipv6_checksum","","Calculate the checksum for a packet built on IPv6",null,{"inputs":[{"name":"udppacket"},{"name":"ipv6addr"},{"name":"ipv6addr"},{"name":"ipnextheaderprotocol"}],"output":{"name":"u16be"}}],[11,"clone","","",40,null],[11,"fmt","","",40,null],[11,"eq","","",41,null],[11,"ne","","",41,null],[11,"eq","","",42,null],[11,"ne","","",42,null],[11,"new","","Constructs a new UdpPacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",41,null],[11,"to_immutable","","Maps from a UdpPacket to a UdpPacket",41,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",41,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a Udp instance when converted into\na byte-array",41,{"inputs":[{"name":"udp"}],"output":{"name":"usize"}}],[11,"get_source","","Get the source field",41,null],[11,"get_destination","","Get the destination field",41,null],[11,"get_length","","Get the length field",41,null],[11,"get_checksum","","Get the checksum field",41,null],[11,"new","","Constructs a new MutableUdpPacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",42,null],[11,"to_immutable","","Maps from a MutableUdpPacket to a UdpPacket",42,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",42,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a Udp instance when converted into\na byte-array",42,{"inputs":[{"name":"udp"}],"output":{"name":"usize"}}],[11,"populate","","Populates a UdpPacket using a Udp structure",42,null],[11,"get_source","","Get the source field",42,null],[11,"get_destination","","Get the destination field",42,null],[11,"get_length","","Get the length field",42,null],[11,"get_checksum","","Get the checksum field",42,null],[11,"set_source","","Set the source field",42,null],[11,"set_destination","","Set the destination field",42,null],[11,"set_length","","Set the length field",42,null],[11,"set_checksum","","Set the checksum field",42,null],[11,"set_payload","","Set the value of the payload field (copies contents)",42,null],[11,"packet_size","","",41,null],[11,"packet_size","","",42,null],[11,"packet_mut","","",42,null],[11,"payload_mut","","",42,null],[11,"packet","","",42,null],[11,"payload","","",42,null],[11,"packet","","",41,null],[11,"payload","","",41,null],[11,"next","","",43,null],[11,"size_hint","","",43,null],[11,"from_packet","","",41,null],[11,"from_packet","","",42,null],[11,"fmt","","",41,null],[11,"fmt","","",42,null],[0,"tcp","pnet::packet","TCP packet abstraction",null,null],[3,"Tcp","pnet::packet::tcp","Represents a TCP Packet",null,null],[3,"TcpPacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"MutableTcpPacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"TcpIterable","","Used to iterate over a slice of `TcpPacket`s",null,null],[3,"TcpOptionNumber","","Represents a TCP option",null,null],[12,"0","","",44,null],[3,"TcpOption","","TCP option",null,null],[3,"TcpOptionPacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"MutableTcpOptionPacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"TcpOptionIterable","","Used to iterate over a slice of `TcpOptionPacket`s",null,null],[5,"ipv4_checksum","","Calculate the checksum for a packet built on IPv4",null,{"inputs":[{"name":"tcppacket"},{"name":"ipv4addr"},{"name":"ipv4addr"},{"name":"ipnextheaderprotocol"}],"output":{"name":"u16"}}],[0,"TcpFlags","","TCP flags",null,null],[17,"NS","pnet::packet::tcp::TcpFlags","NS – ECN-nonce concealment protection (experimental: see RFC 3540).",null,null],[17,"CWR","","CWR – Congestion Window Reduced (CWR) flag is set by the sending\nhost to indicate that it received a TCP segment with the ECE flag set\nand had responded in congestion control mechanism (added to header by RFC 3168).",null,null],[17,"ECE","","ECE – ECN-Echo has a dual role, depending on the value of the\nSYN flag. It indicates:\nIf the SYN flag is set (1), that the TCP peer is ECN capable.\nIf the SYN flag is clear (0), that a packet with Congestion Experienced\nflag set (ECN=11) in IP header received during normal transmission\n(added to header by RFC 3168).",null,null],[17,"URG","","URG – indicates that the Urgent pointer field is significant",null,null],[17,"ACK","","ACK – indicates that the Acknowledgment field is significant.\nAll packets after the initial SYN packet sent by the client should have this flag set.",null,null],[17,"PSH","","PSH – Push function. Asks to push the buffered data to the receiving application.",null,null],[17,"RST","","RST – Reset the connection",null,null],[17,"SYN","","SYN – Synchronize sequence numbers. Only the first packet sent from each end\nshould have this flag set.",null,null],[17,"FIN","","FIN – No more data from sender",null,null],[0,"TcpOptionNumbers","pnet::packet::tcp","TCP header options",null,null],[17,"EOL","pnet::packet::tcp::TcpOptionNumbers","End of Options list",null,null],[17,"NOP","","No operation",null,null],[17,"MSS","","Maximum segment size",null,null],[17,"WSCALE","","Window scale",null,null],[17,"SACK_PERMITTED","","Selective acknowledgements permitted",null,null],[17,"SACK","","Selective acknowledgment",null,null],[17,"TIMESTAMPS","","Timestamps",null,null],[11,"clone","pnet::packet::tcp","",45,null],[11,"fmt","","",45,null],[11,"eq","","",46,null],[11,"ne","","",46,null],[11,"eq","","",47,null],[11,"ne","","",47,null],[11,"new","","Constructs a new TcpPacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",46,null],[11,"to_immutable","","Maps from a TcpPacket to a TcpPacket",46,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",46,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a Tcp instance when converted into\na byte-array",46,{"inputs":[{"name":"tcp"}],"output":{"name":"usize"}}],[11,"get_source","","Get the source field",46,null],[11,"get_destination","","Get the destination field",46,null],[11,"get_sequence","","Get the sequence field",46,null],[11,"get_acknowledgement","","Get the acknowledgement field",46,null],[11,"get_data_offset","","Get the data_offset field",46,null],[11,"get_reserved","","Get the reserved field",46,null],[11,"get_flags","","Get the flags field",46,null],[11,"get_window","","Get the window field",46,null],[11,"get_checksum","","Get the checksum field",46,null],[11,"get_urgent_ptr","","Get the urgent_ptr field",46,null],[11,"get_options_raw","","Get the raw &[u8] value of the options field, without copying",46,null],[11,"get_options","","Get the value of the options field (copies contents)",46,null],[11,"get_options_iter","","Get the value of the options field as iterator",46,null],[11,"new","","Constructs a new MutableTcpPacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",47,null],[11,"to_immutable","","Maps from a MutableTcpPacket to a TcpPacket",47,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",47,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a Tcp instance when converted into\na byte-array",47,{"inputs":[{"name":"tcp"}],"output":{"name":"usize"}}],[11,"populate","","Populates a TcpPacket using a Tcp structure",47,null],[11,"get_source","","Get the source field",47,null],[11,"get_destination","","Get the destination field",47,null],[11,"get_sequence","","Get the sequence field",47,null],[11,"get_acknowledgement","","Get the acknowledgement field",47,null],[11,"get_data_offset","","Get the data_offset field",47,null],[11,"get_reserved","","Get the reserved field",47,null],[11,"get_flags","","Get the flags field",47,null],[11,"get_window","","Get the window field",47,null],[11,"get_checksum","","Get the checksum field",47,null],[11,"get_urgent_ptr","","Get the urgent_ptr field",47,null],[11,"get_options_raw","","Get the raw &[u8] value of the options field, without copying",47,null],[11,"get_options","","Get the value of the options field (copies contents)",47,null],[11,"get_options_iter","","Get the value of the options field as iterator",47,null],[11,"set_source","","Set the source field",47,null],[11,"set_destination","","Set the destination field",47,null],[11,"set_sequence","","Set the sequence field",47,null],[11,"set_acknowledgement","","Set the acknowledgement field",47,null],[11,"set_data_offset","","Set the data_offset field",47,null],[11,"set_reserved","","Set the reserved field",47,null],[11,"set_flags","","Set the flags field",47,null],[11,"set_window","","Set the window field",47,null],[11,"set_checksum","","Set the checksum field",47,null],[11,"set_urgent_ptr","","Set the urgent_ptr field",47,null],[11,"get_options_raw_mut","","Get the raw &mut [u8] value of the options field, without copying",47,null],[11,"set_options","","Set the value of the options field (copies contents)",47,null],[11,"set_payload","","Set the value of the payload field (copies contents)",47,null],[11,"packet_size","","",46,null],[11,"packet_size","","",47,null],[11,"packet_mut","","",47,null],[11,"payload_mut","","",47,null],[11,"packet","","",47,null],[11,"payload","","",47,null],[11,"packet","","",46,null],[11,"payload","","",46,null],[11,"next","","",48,null],[11,"size_hint","","",48,null],[11,"from_packet","","",46,null],[11,"from_packet","","",47,null],[11,"fmt","","",46,null],[11,"fmt","","",47,null],[11,"clone","","",44,null],[11,"fmt","","",44,null],[11,"eq","","",44,null],[11,"ne","","",44,null],[11,"partial_cmp","","",44,null],[11,"lt","","",44,null],[11,"le","","",44,null],[11,"gt","","",44,null],[11,"ge","","",44,null],[11,"cmp","","",44,null],[11,"hash","","",44,null],[11,"clone","","",49,null],[11,"fmt","","",49,null],[11,"eq","","",50,null],[11,"ne","","",50,null],[11,"eq","","",51,null],[11,"ne","","",51,null],[11,"new","","Constructs a new TcpOptionPacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",50,null],[11,"to_immutable","","Maps from a TcpOptionPacket to a TcpOptionPacket",50,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",50,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a TcpOption instance when converted into\na byte-array",50,{"inputs":[{"name":"tcpoption"}],"output":{"name":"usize"}}],[11,"get_number","","Get the value of the number field",50,null],[11,"get_length_raw","","Get the raw &[u8] value of the length field, without copying",50,null],[11,"get_length","","Get the value of the length field (copies contents)",50,null],[11,"new","","Constructs a new MutableTcpOptionPacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",51,null],[11,"to_immutable","","Maps from a MutableTcpOptionPacket to a TcpOptionPacket",51,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",51,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a TcpOption instance when converted into\na byte-array",51,{"inputs":[{"name":"tcpoption"}],"output":{"name":"usize"}}],[11,"populate","","Populates a TcpOptionPacket using a TcpOption structure",51,null],[11,"get_number","","Get the value of the number field",51,null],[11,"get_length_raw","","Get the raw &[u8] value of the length field, without copying",51,null],[11,"get_length","","Get the value of the length field (copies contents)",51,null],[11,"set_number","","Set the value of the number field",51,null],[11,"get_length_raw_mut","","Get the raw &mut [u8] value of the length field, without copying",51,null],[11,"set_length","","Set the value of the length field (copies contents)",51,null],[11,"set_data","","Set the value of the data field (copies contents)",51,null],[11,"packet_size","","",50,null],[11,"packet_size","","",51,null],[11,"packet_mut","","",51,null],[11,"payload_mut","","",51,null],[11,"packet","","",51,null],[11,"payload","","",51,null],[11,"packet","","",50,null],[11,"payload","","",50,null],[11,"next","","",52,null],[11,"size_hint","","",52,null],[11,"from_packet","","",50,null],[11,"from_packet","","",51,null],[11,"fmt","","",50,null],[11,"fmt","","",51,null],[11,"nop","","NOP: This may be used to align option fields on 32-bit boundaries for better performance.",49,{"inputs":[],"output":{"name":"self"}}],[11,"timestamp","","Timestamp: TCP timestamps, defined in RFC 1323, can help TCP determine in which order\npackets were sent. TCP timestamps are not normally aligned to the system clock and\nstart at some random value.",49,{"inputs":[{"name":"u32"},{"name":"u32"}],"output":{"name":"self"}}],[11,"mss","","MSS: The maximum segment size (MSS) is the largest amount of data, specified in bytes,\nthat TCP is willing to receive in a single segment.",49,{"inputs":[{"name":"u16"}],"output":{"name":"self"}}],[11,"wscale","","Window scale: The TCP window scale option, as defined in RFC 1323, is an option used to\nincrease the maximum window size from 65,535 bytes to 1 gigabyte.",49,{"inputs":[{"name":"u8"}],"output":{"name":"self"}}],[11,"sack_perm","","Selective acknowledgment (SACK) option, defined in RFC 2018 allows the receiver to acknowledge\ndiscontinuous blocks of packets which were received correctly. This options enables use of\nSACK during negotiation.",49,{"inputs":[],"output":{"name":"self"}}],[11,"selective_ack","","Selective acknowledgment (SACK) option, defined in RFC 2018 allows the receiver to acknowledge\ndiscontinuous blocks of packets which were received correctly. The acknowledgement can specify\na number of SACK blocks, where each SACK block is conveyed by the starting and ending sequence\nnumbers of a contiguous range that the receiver correctly received.",49,null],[11,"new","","Create a new TcpOptionNumber",44,{"inputs":[{"name":"u8"}],"output":{"name":"tcpoptionnumber"}}],[11,"to_primitive_values","","",44,null],[0,"arp","pnet::packet","TCP packet abstraction",null,null],[3,"ArpOperation","pnet::packet::arp","Represents ARP operation",null,null],[12,"0","","",53,null],[3,"ArpHardwareType","","Represents ARP hardware types",null,null],[12,"0","","",54,null],[3,"Arp","","Represents an ARP Packet",null,null],[3,"ArpPacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"MutableArpPacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"ArpIterable","","Used to iterate over a slice of `ArpPacket`s",null,null],[0,"ArpOperations","","ARP protocol operations",null,null],[17,"Request","pnet::packet::arp::ArpOperations","ARP request",null,null],[17,"Reply","","ARP reply",null,null],[0,"ArpHardwareTypes","pnet::packet::arp","ARP protocol hardware types",null,null],[17,"Ethernet","pnet::packet::arp::ArpHardwareTypes","Ethernet",null,null],[11,"clone","pnet::packet::arp","",53,null],[11,"fmt","","",53,null],[11,"eq","","",53,null],[11,"ne","","",53,null],[11,"partial_cmp","","",53,null],[11,"lt","","",53,null],[11,"le","","",53,null],[11,"gt","","",53,null],[11,"ge","","",53,null],[11,"cmp","","",53,null],[11,"hash","","",53,null],[11,"new","","Create a new ArpOperation",53,{"inputs":[{"name":"u16"}],"output":{"name":"self"}}],[11,"to_primitive_values","","",53,null],[11,"clone","","",54,null],[11,"fmt","","",54,null],[11,"eq","","",54,null],[11,"ne","","",54,null],[11,"partial_cmp","","",54,null],[11,"lt","","",54,null],[11,"le","","",54,null],[11,"gt","","",54,null],[11,"ge","","",54,null],[11,"cmp","","",54,null],[11,"hash","","",54,null],[11,"new","","Create a new ArpHardwareType",54,{"inputs":[{"name":"u16"}],"output":{"name":"self"}}],[11,"to_primitive_values","","",54,null],[11,"clone","","",55,null],[11,"fmt","","",55,null],[11,"eq","","",56,null],[11,"ne","","",56,null],[11,"eq","","",57,null],[11,"ne","","",57,null],[11,"new","","Constructs a new ArpPacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",56,null],[11,"to_immutable","","Maps from a ArpPacket to a ArpPacket",56,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",56,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a Arp instance when converted into\na byte-array",56,{"inputs":[{"name":"arp"}],"output":{"name":"usize"}}],[11,"get_hardware_type","","Get the value of the hardware_type field",56,null],[11,"get_protocol_type","","Get the value of the protocol_type field",56,null],[11,"get_hw_addr_len","","Get the hw_addr_len field",56,null],[11,"get_proto_addr_len","","Get the proto_addr_len field",56,null],[11,"get_operation","","Get the value of the operation field",56,null],[11,"get_sender_hw_addr","","Get the value of the sender_hw_addr field",56,null],[11,"get_sender_proto_addr","","Get the value of the sender_proto_addr field",56,null],[11,"get_target_hw_addr","","Get the value of the target_hw_addr field",56,null],[11,"get_target_proto_addr","","Get the value of the target_proto_addr field",56,null],[11,"new","","Constructs a new MutableArpPacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",57,null],[11,"to_immutable","","Maps from a MutableArpPacket to a ArpPacket",57,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",57,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a Arp instance when converted into\na byte-array",57,{"inputs":[{"name":"arp"}],"output":{"name":"usize"}}],[11,"populate","","Populates a ArpPacket using a Arp structure",57,null],[11,"get_hardware_type","","Get the value of the hardware_type field",57,null],[11,"get_protocol_type","","Get the value of the protocol_type field",57,null],[11,"get_hw_addr_len","","Get the hw_addr_len field",57,null],[11,"get_proto_addr_len","","Get the proto_addr_len field",57,null],[11,"get_operation","","Get the value of the operation field",57,null],[11,"get_sender_hw_addr","","Get the value of the sender_hw_addr field",57,null],[11,"get_sender_proto_addr","","Get the value of the sender_proto_addr field",57,null],[11,"get_target_hw_addr","","Get the value of the target_hw_addr field",57,null],[11,"get_target_proto_addr","","Get the value of the target_proto_addr field",57,null],[11,"set_hardware_type","","Set the value of the hardware_type field",57,null],[11,"set_protocol_type","","Set the value of the protocol_type field",57,null],[11,"set_hw_addr_len","","Set the hw_addr_len field",57,null],[11,"set_proto_addr_len","","Set the proto_addr_len field",57,null],[11,"set_operation","","Set the value of the operation field",57,null],[11,"set_sender_hw_addr","","Set the value of the sender_hw_addr field",57,null],[11,"set_sender_proto_addr","","Set the value of the sender_proto_addr field",57,null],[11,"set_target_hw_addr","","Set the value of the target_hw_addr field",57,null],[11,"set_target_proto_addr","","Set the value of the target_proto_addr field",57,null],[11,"set_payload","","Set the value of the payload field (copies contents)",57,null],[11,"packet_size","","",56,null],[11,"packet_size","","",57,null],[11,"packet_mut","","",57,null],[11,"payload_mut","","",57,null],[11,"packet","","",57,null],[11,"payload","","",57,null],[11,"packet","","",56,null],[11,"payload","","",56,null],[11,"next","","",58,null],[11,"size_hint","","",58,null],[11,"from_packet","","",56,null],[11,"from_packet","","",57,null],[11,"fmt","","",56,null],[11,"fmt","","",57,null],[0,"icmp","pnet::packet","ICMP packet abstraction",null,null],[3,"IcmpType","pnet::packet::icmp","Represents the "ICMP type" header field.",null,null],[12,"0","","",59,null],[3,"IcmpCode","","Represents the "ICMP code" header field.",null,null],[12,"0","","",60,null],[3,"Icmp","","Represents a generic ICMP packet",null,null],[3,"IcmpPacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"MutableIcmpPacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"IcmpIterable","","Used to iterate over a slice of `IcmpPacket`s",null,null],[5,"checksum","","Calculates the checksum of an ICMP packet",null,{"inputs":[{"name":"icmppacket"}],"output":{"name":"u16be"}}],[0,"icmp_types","","Enumeration of the recognized ICMP types",null,null],[17,"EchoReply","pnet::packet::icmp::icmp_types","ICMP type for "echo reply" packet",null,null],[17,"DestinationUnreachable","","ICMP type for "destination unreachable" packet",null,null],[17,"SourceQuench","","ICMP type for "source quench" packet",null,null],[17,"RedirectMessage","","ICMP type for "redirect message" packet",null,null],[17,"EchoRequest","","ICMP type for "echo request" packet",null,null],[17,"RouterAdvertisement","","ICMP type for "router advertisement" packet",null,null],[17,"RouterSolicitation","","ICMP type for "router solicitation" packet",null,null],[17,"TimeExceeded","","ICMP type for "time exceeded" packet",null,null],[17,"ParameterProblem","","ICMP type for "parameter problem" packet",null,null],[17,"Timestamp","","ICMP type for "timestamp" packet",null,null],[17,"TimestampReply","","ICMP type for "timestamp reply" packet",null,null],[17,"InformationRequest","","ICMP type for "information request" packet",null,null],[17,"InformationReply","","ICMP type for "information reply" packet",null,null],[17,"AddressMaskRequest","","ICMP type for "address mask request" packet",null,null],[17,"AddressMaskReply","","ICMP type for "address mask reply" packet",null,null],[17,"Traceroute","","ICMP type for "traceroute" packet",null,null],[0,"echo_reply","pnet::packet::icmp","abstraction for ICMP echo reply packets",null,null],[3,"Identifier","pnet::packet::icmp::echo_reply","Represent the "identifier" field of the ICMP echo replay header.",null,null],[12,"0","","",61,null],[3,"SequenceNumber","","Represent the "sequence number" field of the ICMP echo replay header.",null,null],[12,"0","","",62,null],[3,"EchoReply","","Represents an ICMP echo reply packet.",null,null],[3,"EchoReplyPacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"MutableEchoReplyPacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"EchoReplyIterable","","Used to iterate over a slice of `EchoReplyPacket`s",null,null],[0,"icmp_codes","","Enumeration of available ICMP codes for ICMP echo replay packets. There is actually only\none, since the only valid ICMP code is 0.",null,null],[17,"NoCode","pnet::packet::icmp::echo_reply::icmp_codes","0 is the only available ICMP code for "echo reply" ICMP packets.",null,null],[11,"clone","pnet::packet::icmp::echo_reply","",61,null],[11,"fmt","","",61,null],[11,"eq","","",61,null],[11,"ne","","",61,null],[11,"partial_cmp","","",61,null],[11,"lt","","",61,null],[11,"le","","",61,null],[11,"gt","","",61,null],[11,"ge","","",61,null],[11,"cmp","","",61,null],[11,"hash","","",61,null],[11,"new","","Create an identifier",61,{"inputs":[{"name":"u16"}],"output":{"name":"identifier"}}],[11,"to_primitive_values","","",61,null],[11,"clone","","",62,null],[11,"fmt","","",62,null],[11,"eq","","",62,null],[11,"ne","","",62,null],[11,"partial_cmp","","",62,null],[11,"lt","","",62,null],[11,"le","","",62,null],[11,"gt","","",62,null],[11,"ge","","",62,null],[11,"cmp","","",62,null],[11,"hash","","",62,null],[11,"new","","Create a sequence number",62,{"inputs":[{"name":"u16"}],"output":{"name":"sequencenumber"}}],[11,"to_primitive_values","","",62,null],[11,"clone","","",63,null],[11,"fmt","","",63,null],[11,"eq","","",64,null],[11,"ne","","",64,null],[11,"eq","","",65,null],[11,"ne","","",65,null],[11,"new","","Constructs a new EchoReplyPacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",64,null],[11,"to_immutable","","Maps from a EchoReplyPacket to a EchoReplyPacket",64,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",64,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a EchoReply instance when converted into\na byte-array",64,{"inputs":[{"name":"echoreply"}],"output":{"name":"usize"}}],[11,"get_icmp_type","","Get the value of the icmp_type field",64,null],[11,"get_icmp_code","","Get the value of the icmp_code field",64,null],[11,"get_checksum","","Get the checksum field",64,null],[11,"get_identifier","","Get the identifier field",64,null],[11,"get_sequence_number","","Get the sequence_number field",64,null],[11,"new","","Constructs a new MutableEchoReplyPacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",65,null],[11,"to_immutable","","Maps from a MutableEchoReplyPacket to a EchoReplyPacket",65,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",65,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a EchoReply instance when converted into\na byte-array",65,{"inputs":[{"name":"echoreply"}],"output":{"name":"usize"}}],[11,"populate","","Populates a EchoReplyPacket using a EchoReply structure",65,null],[11,"get_icmp_type","","Get the value of the icmp_type field",65,null],[11,"get_icmp_code","","Get the value of the icmp_code field",65,null],[11,"get_checksum","","Get the checksum field",65,null],[11,"get_identifier","","Get the identifier field",65,null],[11,"get_sequence_number","","Get the sequence_number field",65,null],[11,"set_icmp_type","","Set the value of the icmp_type field",65,null],[11,"set_icmp_code","","Set the value of the icmp_code field",65,null],[11,"set_checksum","","Set the checksum field",65,null],[11,"set_identifier","","Set the identifier field",65,null],[11,"set_sequence_number","","Set the sequence_number field",65,null],[11,"set_payload","","Set the value of the payload field (copies contents)",65,null],[11,"packet_size","","",64,null],[11,"packet_size","","",65,null],[11,"packet_mut","","",65,null],[11,"payload_mut","","",65,null],[11,"packet","","",65,null],[11,"payload","","",65,null],[11,"packet","","",64,null],[11,"payload","","",64,null],[11,"next","","",66,null],[11,"size_hint","","",66,null],[11,"from_packet","","",64,null],[11,"from_packet","","",65,null],[11,"fmt","","",64,null],[11,"fmt","","",65,null],[0,"echo_request","pnet::packet::icmp","abstraction for "echo request" ICMP packets.",null,null],[3,"Identifier","pnet::packet::icmp::echo_request","Represents an indentifier field",null,null],[12,"0","","",67,null],[3,"SequenceNumber","","Represents a sequence number field",null,null],[12,"0","","",68,null],[3,"EchoRequest","","Represents an "echo request" ICMP packet.",null,null],[3,"EchoRequestPacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"MutableEchoRequestPacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"EchoRequestIterable","","Used to iterate over a slice of `EchoRequestPacket`s",null,null],[0,"icmp_codes","","Enumeration of available ICMP codes for "echo reply" ICMP packets. There is actually only\none, since the only valid ICMP code is 0.",null,null],[17,"NoCode","pnet::packet::icmp::echo_request::icmp_codes","0 is the only available ICMP code for "echo reply" ICMP packets.",null,null],[11,"clone","pnet::packet::icmp::echo_request","",67,null],[11,"fmt","","",67,null],[11,"eq","","",67,null],[11,"ne","","",67,null],[11,"partial_cmp","","",67,null],[11,"lt","","",67,null],[11,"le","","",67,null],[11,"gt","","",67,null],[11,"ge","","",67,null],[11,"cmp","","",67,null],[11,"hash","","",67,null],[11,"new","","Create an identifier",67,{"inputs":[{"name":"u16"}],"output":{"name":"identifier"}}],[11,"to_primitive_values","","",67,null],[11,"clone","","",68,null],[11,"fmt","","",68,null],[11,"eq","","",68,null],[11,"ne","","",68,null],[11,"partial_cmp","","",68,null],[11,"lt","","",68,null],[11,"le","","",68,null],[11,"gt","","",68,null],[11,"ge","","",68,null],[11,"cmp","","",68,null],[11,"hash","","",68,null],[11,"new","","Create a sequence number",68,{"inputs":[{"name":"u16"}],"output":{"name":"sequencenumber"}}],[11,"to_primitive_values","","",68,null],[11,"clone","","",69,null],[11,"fmt","","",69,null],[11,"eq","","",70,null],[11,"ne","","",70,null],[11,"eq","","",71,null],[11,"ne","","",71,null],[11,"new","","Constructs a new EchoRequestPacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",70,null],[11,"to_immutable","","Maps from a EchoRequestPacket to a EchoRequestPacket",70,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",70,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a EchoRequest instance when converted into\na byte-array",70,{"inputs":[{"name":"echorequest"}],"output":{"name":"usize"}}],[11,"get_icmp_type","","Get the value of the icmp_type field",70,null],[11,"get_icmp_code","","Get the value of the icmp_code field",70,null],[11,"get_checksum","","Get the checksum field",70,null],[11,"get_identifier","","Get the identifier field",70,null],[11,"get_sequence_number","","Get the sequence_number field",70,null],[11,"new","","Constructs a new MutableEchoRequestPacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",71,null],[11,"to_immutable","","Maps from a MutableEchoRequestPacket to a EchoRequestPacket",71,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",71,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a EchoRequest instance when converted into\na byte-array",71,{"inputs":[{"name":"echorequest"}],"output":{"name":"usize"}}],[11,"populate","","Populates a EchoRequestPacket using a EchoRequest structure",71,null],[11,"get_icmp_type","","Get the value of the icmp_type field",71,null],[11,"get_icmp_code","","Get the value of the icmp_code field",71,null],[11,"get_checksum","","Get the checksum field",71,null],[11,"get_identifier","","Get the identifier field",71,null],[11,"get_sequence_number","","Get the sequence_number field",71,null],[11,"set_icmp_type","","Set the value of the icmp_type field",71,null],[11,"set_icmp_code","","Set the value of the icmp_code field",71,null],[11,"set_checksum","","Set the checksum field",71,null],[11,"set_identifier","","Set the identifier field",71,null],[11,"set_sequence_number","","Set the sequence_number field",71,null],[11,"set_payload","","Set the value of the payload field (copies contents)",71,null],[11,"packet_size","","",70,null],[11,"packet_size","","",71,null],[11,"packet_mut","","",71,null],[11,"payload_mut","","",71,null],[11,"packet","","",71,null],[11,"payload","","",71,null],[11,"packet","","",70,null],[11,"payload","","",70,null],[11,"next","","",72,null],[11,"size_hint","","",72,null],[11,"from_packet","","",70,null],[11,"from_packet","","",71,null],[11,"fmt","","",70,null],[11,"fmt","","",71,null],[0,"destination_unreachable","pnet::packet::icmp","abstraction for "destination unreachable" ICMP packets.",null,null],[3,"DestinationUnreachable","pnet::packet::icmp::destination_unreachable","Represents an "echo request" ICMP packet.",null,null],[3,"DestinationUnreachablePacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"MutableDestinationUnreachablePacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"DestinationUnreachableIterable","","Used to iterate over a slice of `DestinationUnreachablePacket`s",null,null],[0,"icmp_codes","","Enumeration of the recognized ICMP codes for "destination unreachable" ICMP packets.",null,null],[17,"DestinationNetworkUnreachable","pnet::packet::icmp::destination_unreachable::icmp_codes","ICMP code for "destination network unreachable" packet",null,null],[17,"DestinationHostUnreachable","","ICMP code for "destination host unreachable" packet",null,null],[17,"DestinationProtocolUnreachable","","ICMP code for "destination protocol unreachable" packet",null,null],[17,"DestinationPortUnreachable","","ICMP code for "destination port unreachable" packet",null,null],[17,"FragmentationRequiredAndDFFlagSet","","ICMP code for "fragmentation required and DFF flag set" packet",null,null],[17,"SourceRouteFailed","","ICMP code for "source route failed" packet",null,null],[17,"DestinationNetworkUnknown","","ICMP code for "destination network unknown" packet",null,null],[17,"DestinationHostUnknown","","ICMP code for "destination host unknown" packet",null,null],[17,"SourceHostIsolated","","ICMP code for "source host isolated" packet",null,null],[17,"NetworkAdministrativelyProhibited","","ICMP code for "network administrative prohibited" packet",null,null],[17,"HostAdministrativelyProhibited","","ICMP code for "host administrative prohibited" packet",null,null],[17,"NetworkUnreachableForTOS","","ICMP code for "network unreachable for this Type Of Service" packet",null,null],[17,"HostUnreachableForTOS","","ICMP code for "host unreachable for this Type Of Service" packet",null,null],[17,"CommunicationAdministrativelyProhibited","","ICMP code for "communication administratively prohibited" packet",null,null],[17,"HostPrecedenceViolation","","ICMP code for "host precedence violation" packet",null,null],[17,"PrecedenceCutoffInEffect","","ICMP code for "precedence cut off in effect" packet",null,null],[11,"clone","pnet::packet::icmp::destination_unreachable","",73,null],[11,"fmt","","",73,null],[11,"eq","","",74,null],[11,"ne","","",74,null],[11,"eq","","",75,null],[11,"ne","","",75,null],[11,"new","","Constructs a new DestinationUnreachablePacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",74,null],[11,"to_immutable","","Maps from a DestinationUnreachablePacket to a DestinationUnreachablePacket",74,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",74,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a DestinationUnreachable instance when converted into\na byte-array",74,{"inputs":[{"name":"destinationunreachable"}],"output":{"name":"usize"}}],[11,"get_icmp_type","","Get the value of the icmp_type field",74,null],[11,"get_icmp_code","","Get the value of the icmp_code field",74,null],[11,"get_checksum","","Get the checksum field",74,null],[11,"get_unused","","Get the unused field",74,null],[11,"new","","Constructs a new MutableDestinationUnreachablePacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",75,null],[11,"to_immutable","","Maps from a MutableDestinationUnreachablePacket to a DestinationUnreachablePacket",75,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",75,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a DestinationUnreachable instance when converted into\na byte-array",75,{"inputs":[{"name":"destinationunreachable"}],"output":{"name":"usize"}}],[11,"populate","","Populates a DestinationUnreachablePacket using a DestinationUnreachable structure",75,null],[11,"get_icmp_type","","Get the value of the icmp_type field",75,null],[11,"get_icmp_code","","Get the value of the icmp_code field",75,null],[11,"get_checksum","","Get the checksum field",75,null],[11,"get_unused","","Get the unused field",75,null],[11,"set_icmp_type","","Set the value of the icmp_type field",75,null],[11,"set_icmp_code","","Set the value of the icmp_code field",75,null],[11,"set_checksum","","Set the checksum field",75,null],[11,"set_unused","","Set the unused field",75,null],[11,"set_payload","","Set the value of the payload field (copies contents)",75,null],[11,"packet_size","","",74,null],[11,"packet_size","","",75,null],[11,"packet_mut","","",75,null],[11,"payload_mut","","",75,null],[11,"packet","","",75,null],[11,"payload","","",75,null],[11,"packet","","",74,null],[11,"payload","","",74,null],[11,"next","","",76,null],[11,"size_hint","","",76,null],[11,"from_packet","","",74,null],[11,"from_packet","","",75,null],[11,"fmt","","",74,null],[11,"fmt","","",75,null],[0,"time_exceeded","pnet::packet::icmp","abstraction for "destination unreachable" ICMP packets.",null,null],[3,"TimeExceeded","pnet::packet::icmp::time_exceeded","Represents an "echo request" ICMP packet.",null,null],[3,"TimeExceededPacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"MutableTimeExceededPacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"TimeExceededIterable","","Used to iterate over a slice of `TimeExceededPacket`s",null,null],[0,"icmp_codes","","Enumeration of the recognized ICMP codes for "time exceeded" ICMP packets.",null,null],[17,"TimeToLiveExceededInTransit","pnet::packet::icmp::time_exceeded::icmp_codes","ICMP code for "time to live exceeded in transit" packet.",null,null],[17,"FragmentReasemblyTimeExceeded","","ICMP code for "fragment reassembly time exceeded" packet.",null,null],[11,"clone","pnet::packet::icmp::time_exceeded","",77,null],[11,"fmt","","",77,null],[11,"eq","","",78,null],[11,"ne","","",78,null],[11,"eq","","",79,null],[11,"ne","","",79,null],[11,"new","","Constructs a new TimeExceededPacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",78,null],[11,"to_immutable","","Maps from a TimeExceededPacket to a TimeExceededPacket",78,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",78,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a TimeExceeded instance when converted into\na byte-array",78,{"inputs":[{"name":"timeexceeded"}],"output":{"name":"usize"}}],[11,"get_icmp_type","","Get the value of the icmp_type field",78,null],[11,"get_icmp_code","","Get the value of the icmp_code field",78,null],[11,"get_checksum","","Get the checksum field",78,null],[11,"get_unused","","Get the unused field",78,null],[11,"new","","Constructs a new MutableTimeExceededPacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",79,null],[11,"to_immutable","","Maps from a MutableTimeExceededPacket to a TimeExceededPacket",79,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",79,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a TimeExceeded instance when converted into\na byte-array",79,{"inputs":[{"name":"timeexceeded"}],"output":{"name":"usize"}}],[11,"populate","","Populates a TimeExceededPacket using a TimeExceeded structure",79,null],[11,"get_icmp_type","","Get the value of the icmp_type field",79,null],[11,"get_icmp_code","","Get the value of the icmp_code field",79,null],[11,"get_checksum","","Get the checksum field",79,null],[11,"get_unused","","Get the unused field",79,null],[11,"set_icmp_type","","Set the value of the icmp_type field",79,null],[11,"set_icmp_code","","Set the value of the icmp_code field",79,null],[11,"set_checksum","","Set the checksum field",79,null],[11,"set_unused","","Set the unused field",79,null],[11,"set_payload","","Set the value of the payload field (copies contents)",79,null],[11,"packet_size","","",78,null],[11,"packet_size","","",79,null],[11,"packet_mut","","",79,null],[11,"payload_mut","","",79,null],[11,"packet","","",79,null],[11,"payload","","",79,null],[11,"packet","","",78,null],[11,"payload","","",78,null],[11,"next","","",80,null],[11,"size_hint","","",80,null],[11,"from_packet","","",78,null],[11,"from_packet","","",79,null],[11,"fmt","","",78,null],[11,"fmt","","",79,null],[11,"clone","pnet::packet::icmp","",59,null],[11,"fmt","","",59,null],[11,"eq","","",59,null],[11,"ne","","",59,null],[11,"partial_cmp","","",59,null],[11,"lt","","",59,null],[11,"le","","",59,null],[11,"gt","","",59,null],[11,"ge","","",59,null],[11,"cmp","","",59,null],[11,"hash","","",59,null],[11,"new","","Create an ICMP type",59,{"inputs":[{"name":"u8"}],"output":{"name":"icmptype"}}],[11,"to_primitive_values","","",59,null],[11,"clone","","",60,null],[11,"fmt","","",60,null],[11,"eq","","",60,null],[11,"ne","","",60,null],[11,"partial_cmp","","",60,null],[11,"lt","","",60,null],[11,"le","","",60,null],[11,"gt","","",60,null],[11,"ge","","",60,null],[11,"cmp","","",60,null],[11,"hash","","",60,null],[11,"new","","Create an ICMP code",60,{"inputs":[{"name":"u8"}],"output":{"name":"icmpcode"}}],[11,"to_primitive_values","","",60,null],[11,"clone","","",81,null],[11,"fmt","","",81,null],[11,"eq","","",82,null],[11,"ne","","",82,null],[11,"eq","","",83,null],[11,"ne","","",83,null],[11,"new","","Constructs a new IcmpPacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",82,null],[11,"to_immutable","","Maps from a IcmpPacket to a IcmpPacket",82,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",82,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a Icmp instance when converted into\na byte-array",82,{"inputs":[{"name":"icmp"}],"output":{"name":"usize"}}],[11,"get_icmp_type","","Get the value of the icmp_type field",82,null],[11,"get_icmp_code","","Get the value of the icmp_code field",82,null],[11,"get_checksum","","Get the checksum field",82,null],[11,"new","","Constructs a new MutableIcmpPacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",83,null],[11,"to_immutable","","Maps from a MutableIcmpPacket to a IcmpPacket",83,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",83,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a Icmp instance when converted into\na byte-array",83,{"inputs":[{"name":"icmp"}],"output":{"name":"usize"}}],[11,"populate","","Populates a IcmpPacket using a Icmp structure",83,null],[11,"get_icmp_type","","Get the value of the icmp_type field",83,null],[11,"get_icmp_code","","Get the value of the icmp_code field",83,null],[11,"get_checksum","","Get the checksum field",83,null],[11,"set_icmp_type","","Set the value of the icmp_type field",83,null],[11,"set_icmp_code","","Set the value of the icmp_code field",83,null],[11,"set_checksum","","Set the checksum field",83,null],[11,"set_payload","","Set the value of the payload field (copies contents)",83,null],[11,"packet_size","","",82,null],[11,"packet_size","","",83,null],[11,"packet_mut","","",83,null],[11,"payload_mut","","",83,null],[11,"packet","","",83,null],[11,"payload","","",83,null],[11,"packet","","",82,null],[11,"payload","","",82,null],[11,"next","","",84,null],[11,"size_hint","","",84,null],[11,"from_packet","","",82,null],[11,"from_packet","","",83,null],[11,"fmt","","",82,null],[11,"fmt","","",83,null],[0,"vlan","pnet::packet","VLAN packet abstraction",null,null],[3,"ClassOfService","pnet::packet::vlan","Represents an IEEE 802.1p class of service",null,null],[12,"0","","",85,null],[3,"Vlan","","Represents a VLAN-tagged packet",null,null],[3,"VlanPacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"MutableVlanPacket","","A structure enabling manipulation of on the wire packets",null,null],[3,"VlanIterable","","Used to iterate over a slice of `VlanPacket`s",null,null],[0,"ClassesOfService","","IEEE 802.1p classes of service as defined in\nhttps://en.wikipedia.org/wiki/IEEE_P802.1p",null,null],[17,"BK","pnet::packet::vlan::ClassesOfService","Background",null,null],[17,"BE","","Best Effort",null,null],[17,"EE","","Excellent Effort",null,null],[17,"CA","","Critical Applications",null,null],[17,"VI","","Video, < 100 ms latency",null,null],[17,"VO","","Voice, < 10 ms latency",null,null],[17,"IC","","Internetwork Control",null,null],[17,"NC","","Network Control",null,null],[11,"clone","pnet::packet::vlan","",85,null],[11,"fmt","","",85,null],[11,"eq","","",85,null],[11,"ne","","",85,null],[11,"partial_cmp","","",85,null],[11,"lt","","",85,null],[11,"le","","",85,null],[11,"gt","","",85,null],[11,"ge","","",85,null],[11,"cmp","","",85,null],[11,"hash","","",85,null],[11,"new","","Create a new ClassOfService",85,{"inputs":[{"name":"u3"}],"output":{"name":"classofservice"}}],[11,"to_primitive_values","","",85,null],[11,"clone","","",86,null],[11,"fmt","","",86,null],[11,"eq","","",87,null],[11,"ne","","",87,null],[11,"eq","","",88,null],[11,"ne","","",88,null],[11,"new","","Constructs a new VlanPacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",87,null],[11,"to_immutable","","Maps from a VlanPacket to a VlanPacket",87,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",87,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a Vlan instance when converted into\na byte-array",87,{"inputs":[{"name":"vlan"}],"output":{"name":"usize"}}],[11,"get_priority_code_point","","Get the value of the priority_code_point field",87,null],[11,"get_drop_eligible_indicator","","Get the drop_eligible_indicator field",87,null],[11,"get_vlan_identifier","","Get the vlan_identifier field",87,null],[11,"get_ethertype","","Get the value of the ethertype field",87,null],[11,"new","","Constructs a new MutableVlanPacket. If the provided buffer is less than the minimum required\npacket size, this will return None.",88,null],[11,"to_immutable","","Maps from a MutableVlanPacket to a VlanPacket",88,null],[11,"minimum_packet_size","","The minimum size (in bytes) a packet of this type can be. It's based on the total size\nof the fixed-size fields.",88,{"inputs":[],"output":{"name":"usize"}}],[11,"packet_size","","The size (in bytes) of a Vlan instance when converted into\na byte-array",88,{"inputs":[{"name":"vlan"}],"output":{"name":"usize"}}],[11,"populate","","Populates a VlanPacket using a Vlan structure",88,null],[11,"get_priority_code_point","","Get the value of the priority_code_point field",88,null],[11,"get_drop_eligible_indicator","","Get the drop_eligible_indicator field",88,null],[11,"get_vlan_identifier","","Get the vlan_identifier field",88,null],[11,"get_ethertype","","Get the value of the ethertype field",88,null],[11,"set_priority_code_point","","Set the value of the priority_code_point field",88,null],[11,"set_drop_eligible_indicator","","Set the drop_eligible_indicator field",88,null],[11,"set_vlan_identifier","","Set the vlan_identifier field",88,null],[11,"set_ethertype","","Set the value of the ethertype field",88,null],[11,"set_payload","","Set the value of the payload field (copies contents)",88,null],[11,"packet_size","","",87,null],[11,"packet_size","","",88,null],[11,"packet_mut","","",88,null],[11,"payload_mut","","",88,null],[11,"packet","","",88,null],[11,"payload","","",88,null],[11,"packet","","",87,null],[11,"payload","","",87,null],[11,"next","","",89,null],[11,"size_hint","","",89,null],[11,"from_packet","","",87,null],[11,"from_packet","","",88,null],[11,"fmt","","",87,null],[11,"fmt","","",88,null],[8,"Packet","pnet::packet","Represents a generic network packet",null,null],[10,"packet","","Retreive the underlying buffer for the packet",90,null],[10,"payload","","Retreive the payload for the packet",90,null],[8,"MutablePacket","","Represents a generic, mutable, network packet",null,null],[10,"packet_mut","","Retreive the underlying, mutable, buffer for the packet",91,null],[10,"payload_mut","","Retreive the mutable payload for the packet",91,null],[11,"clone_from","","Initialize this packet by cloning another",91,null],[8,"FromPacket","","Used to convert on-the-wire packets to their #[packet] equivalent",null,null],[16,"T","","The type of the packet to convert from",92,null],[10,"from_packet","","Converts a wire-format packet to #[packet] struct format",92,null],[8,"PacketSize","","Used to find the calculated size of the packet. This is used for occasions where the underlying\nbuffer is not the same length as the packet itself.",null,null],[10,"packet_size","","Get the calculated size of the packet",93,null],[8,"PrimitiveValues","","Used to convert a type to primitive values representing it",null,null],[16,"T","","A tuple of types, to represent the current value",94,null],[10,"to_primitive_values","","Convert a value to primitive types representing it",94,null],[0,"transport","pnet","Support for implementing transport layer protocols",null,null],[3,"TransportSender","pnet::transport","Structure used for sending at the transport layer. Should be created with transport_channel()",null,null],[3,"TransportReceiver","","Structure used for sending at the transport layer. Should be created with transport_channel()",null,null],[3,"Ipv4TransportChannelIterator","","An iterator over packets of type $ty",null,null],[3,"UdpTransportChannelIterator","","An iterator over packets of type $ty",null,null],[4,"TransportProtocol","","Represents a transport layer protocol",null,null],[13,"Ipv4","","Represents a transport protocol built on top of IPv4",95,null],[13,"Ipv6","","Represents a transport protocol built on top of IPv6",95,null],[4,"TransportChannelType","","Type of transport channel to present",null,null],[13,"Layer4","","The application will send and receive transport layer packets",96,null],[13,"Layer3","","The application will send and receive IPv4 packets, with the specified transport protocol",96,null],[5,"transport_channel","","Create a new (TransportSender, TransportReceiver) pair",null,{"inputs":[{"name":"usize"},{"name":"transportchanneltype"}],"output":{"name":"result"}}],[5,"ipv4_packet_iter","","Return a packet iterator with packets of type $ty for some transport receiver",null,{"inputs":[{"name":"transportreceiver"}],"output":{"name":"ipv4transportchanneliterator"}}],[5,"udp_packet_iter","","Return a packet iterator with packets of type $ty for some transport receiver",null,{"inputs":[{"name":"transportreceiver"}],"output":{"name":"udptransportchanneliterator"}}],[11,"clone","","",95,null],[11,"clone","","",96,null],[11,"send_to","","Send a packet to the provided desination",97,null],[11,"next","","Get the next ($ty, IpAddr) pair for the given channel",98,null],[11,"next","","Get the next ($ty, IpAddr) pair for the given channel",99,null],[0,"util","pnet","Miscellaneous utilities for low level networking",null,null],[3,"MacAddr","pnet::util","A MAC address",null,null],[12,"0","","",100,null],[12,"1","","",100,null],[12,"2","","",100,null],[12,"3","","",100,null],[12,"4","","",100,null],[12,"5","","",100,null],[4,"ParseMacAddrErr","","Represents an error which occurred whilst parsing a MAC address",null,null],[13,"TooManyComponents","","The MAC address has too many components, eg. 00:11:22:33:44:55:66",101,null],[13,"TooFewComponents","","The MAC address has too few components, eg. 00:11",101,null],[13,"InvalidComponent","","One of the components contains an invalid value, eg. 00:GG:22:33:44:55",101,null],[5,"get_network_interfaces","","Get a list of available network interfaces for the current machine.\nDeprecated. Instead use the implementation available for your backend.\nThe default one is at `pnet::datalink::interfaces`.",null,{"inputs":[],"output":{"name":"vec"}}],[8,"Octets","","Convert value to byte array",null,null],[16,"Output","","Output type - bytes array",102,null],[10,"octets","","Return value as bytes (big-endian order)",102,null],[11,"hash","","",100,null],[11,"clone","","",100,null],[11,"eq","","",100,null],[11,"ne","","",100,null],[11,"new","","Construct a new MacAddr",100,{"inputs":[{"name":"u8"},{"name":"u8"},{"name":"u8"},{"name":"u8"},{"name":"u8"},{"name":"u8"}],"output":{"name":"macaddr"}}],[11,"to_primitive_values","","",100,null],[11,"fmt","","",100,null],[11,"fmt","","",100,null],[11,"clone","","",101,null],[11,"eq","","",101,null],[11,"fmt","","",101,null],[11,"from_str","","",100,{"inputs":[{"name":"str"}],"output":{"name":"result"}}],[14,"transport_channel_iterator!","pnet","Create an iterator for some packet type.",null,null]],"paths":[[3,"Config"],[3,"NetworkInterface"],[4,"ChannelType"],[4,"Channel"],[3,"Config"],[3,"Config"],[8,"EthernetDataLinkSender"],[8,"EthernetDataLinkReceiver"],[8,"EthernetDataLinkChannelIterator"],[3,"EtherType"],[3,"Ethernet"],[3,"EthernetPacket"],[3,"MutableEthernetPacket"],[3,"EthernetIterable"],[3,"Gre"],[3,"GrePacket"],[3,"MutableGrePacket"],[3,"GreIterable"],[3,"U16BE"],[3,"U16BEPacket"],[3,"MutableU16BEPacket"],[3,"U16BEIterable"],[3,"U32BE"],[3,"U32BEPacket"],[3,"MutableU32BEPacket"],[3,"U32BEIterable"],[3,"IpNextHeaderProtocol"],[3,"Ipv4OptionNumber"],[3,"Ipv4"],[3,"Ipv4Packet"],[3,"MutableIpv4Packet"],[3,"Ipv4Iterable"],[3,"Ipv4Option"],[3,"Ipv4OptionPacket"],[3,"MutableIpv4OptionPacket"],[3,"Ipv4OptionIterable"],[3,"Ipv6"],[3,"Ipv6Packet"],[3,"MutableIpv6Packet"],[3,"Ipv6Iterable"],[3,"Udp"],[3,"UdpPacket"],[3,"MutableUdpPacket"],[3,"UdpIterable"],[3,"TcpOptionNumber"],[3,"Tcp"],[3,"TcpPacket"],[3,"MutableTcpPacket"],[3,"TcpIterable"],[3,"TcpOption"],[3,"TcpOptionPacket"],[3,"MutableTcpOptionPacket"],[3,"TcpOptionIterable"],[3,"ArpOperation"],[3,"ArpHardwareType"],[3,"Arp"],[3,"ArpPacket"],[3,"MutableArpPacket"],[3,"ArpIterable"],[3,"IcmpType"],[3,"IcmpCode"],[3,"Identifier"],[3,"SequenceNumber"],[3,"EchoReply"],[3,"EchoReplyPacket"],[3,"MutableEchoReplyPacket"],[3,"EchoReplyIterable"],[3,"Identifier"],[3,"SequenceNumber"],[3,"EchoRequest"],[3,"EchoRequestPacket"],[3,"MutableEchoRequestPacket"],[3,"EchoRequestIterable"],[3,"DestinationUnreachable"],[3,"DestinationUnreachablePacket"],[3,"MutableDestinationUnreachablePacket"],[3,"DestinationUnreachableIterable"],[3,"TimeExceeded"],[3,"TimeExceededPacket"],[3,"MutableTimeExceededPacket"],[3,"TimeExceededIterable"],[3,"Icmp"],[3,"IcmpPacket"],[3,"MutableIcmpPacket"],[3,"IcmpIterable"],[3,"ClassOfService"],[3,"Vlan"],[3,"VlanPacket"],[3,"MutableVlanPacket"],[3,"VlanIterable"],[8,"Packet"],[8,"MutablePacket"],[8,"FromPacket"],[8,"PacketSize"],[8,"PrimitiveValues"],[4,"TransportProtocol"],[4,"TransportChannelType"],[3,"TransportSender"],[3,"Ipv4TransportChannelIterator"],[3,"UdpTransportChannelIterator"],[3,"MacAddr"],[4,"ParseMacAddrErr"],[8,"Octets"]]}; initSearch(searchIndex);