IPv6¶
-
class
ryu.lib.packet.ipv6.
auth
(nxt=6, size=2, spi=0, seq=0, data=b'x00x00x00x00')¶ IP Authentication header (RFC 2402) encoder/decoder class.
This is used with ryu.lib.packet.ipv6.ipv6.
An instance has the following attributes at least. Most of them are same to the on-wire counterparts but in host byte order. __init__ takes the corresponding args in this order.
Attribute Description nxt Next Header size the length of the Authentication Header in 64-bit words, subtracting 1. spi security parameters index. seq sequence number. data authentication data.
-
class
ryu.lib.packet.ipv6.
dst_opts
(nxt=6, size=0, data=None)¶ IPv6 (RFC 2460) destination header encoder/decoder class.
This is used with ryu.lib.packet.ipv6.ipv6.
An instance has the following attributes at least. Most of them are same to the on-wire counterparts but in host byte order. __init__ takes the corresponding args in this order.
Attribute Description nxt Next Header size the length of the destination header, not include the first 8 octet. data IPv6 options.
-
class
ryu.lib.packet.ipv6.
fragment
(nxt=6, offset=0, more=0, id_=0)¶ IPv6 (RFC 2460) fragment header encoder/decoder class.
This is used with ryu.lib.packet.ipv6.ipv6.
An instance has the following attributes at least. Most of them are same to the on-wire counterparts but in host byte order. __init__ takes the corresponding args in this order.
Attribute Description nxt Next Header offset offset, in 8-octet units, relative to the start of the fragmentable part of the original packet. more 1 means more fragments follow; 0 means last fragment. id_ packet identification value.
-
class
ryu.lib.packet.ipv6.
header
(nxt)¶ extension header abstract class.
-
class
ryu.lib.packet.ipv6.
hop_opts
(nxt=6, size=0, data=None)¶ IPv6 (RFC 2460) Hop-by-Hop Options header encoder/decoder class.
This is used with ryu.lib.packet.ipv6.ipv6.
An instance has the following attributes at least. Most of them are same to the on-wire counterparts but in host byte order. __init__ takes the corresponding args in this order.
Attribute Description nxt Next Header size the length of the Hop-by-Hop Options header, not include the first 8 octet. data IPv6 options.
-
class
ryu.lib.packet.ipv6.
ipv6
(version=6, traffic_class=0, flow_label=0, payload_length=0, nxt=6, hop_limit=255, src='10::10', dst='20::20', ext_hdrs=None)¶ IPv6 (RFC 2460) header encoder/decoder class.
An instance has the following attributes at least. Most of them are same to the on-wire counterparts but in host byte order. IPv6 addresses are represented as a string like 'ff02::1'. __init__ takes the corresponding args in this order.
Attribute Description Example version Version traffic_class Traffic Class flow_label When decoding, Flow Label. When encoding, the most significant 8 bits of Flow Label. payload_length Payload Length nxt Next Header hop_limit Hop Limit src Source Address 'ff02::1' dst Destination Address '::' ext_hdrs Extension Headers -
classmethod
parser
(buf)¶ Decode a protocol header.
This method is used only when decoding a packet.
Decode a protocol header at offset 0 in bytearray buf. Returns the following three objects.
- An object to describe the decoded header.
- A packet_base.PacketBase subclass appropriate for the rest of the packet. None when the rest of the packet should be considered as raw payload.
- The rest of packet.
-
serialize
(payload, prev)¶ Encode a protocol header.
This method is used only when encoding a packet.
Encode a protocol header. Returns a bytearray which contains the header.
payload is the rest of the packet which will immediately follow this header.
prev is a packet_base.PacketBase subclass for the outer protocol header. prev is None if the current header is the outer-most. For example, prev is ipv4 or ipv6 for tcp.serialize.
-
classmethod
-
class
ryu.lib.packet.ipv6.
opt_header
(nxt, size, data)¶ an abstract class for Hop-by-Hop Options header and destination header.
-
class
ryu.lib.packet.ipv6.
option
(type_=0, len_=-1, data=None)¶ IPv6 (RFC 2460) Options header encoder/decoder class.
- This is used with ryu.lib.packet.ipv6.hop_opts or
- ryu.lib.packet.ipv6.dst_opts.
An instance has the following attributes at least. Most of them are same to the on-wire counterparts but in host byte order. __init__ takes the corresponding args in this order.
Attribute Description type_ option type. len_ the length of data. -1 if type_ is 0. data an option value. None if len_ is 0 or -1.
-
class
ryu.lib.packet.ipv6.
routing
(nxt)¶ An IPv6 Routing Header decoder class. This class has only the parser method.
IPv6 Routing Header types.
http://www.iana.org/assignments/ipv6-parameters/ipv6-parameters.xhtml
Value Description Reference 0 Source Route (DEPRECATED) [[IPV6]][RFC5095] 1 Nimrod (DEPRECATED 2009-05-06) 2 Type 2 Routing Header [RFC6275] 3 RPL Source Route Header [RFC6554] 4 - 252 Unassigned 253 RFC3692-style Experiment 1 [2] [RFC4727] 254 RFC3692-style Experiment 2 [2] [RFC4727] 255 Reserved
-
class
ryu.lib.packet.ipv6.
routing_type3
(nxt=6, size=0, type_=3, seg=0, cmpi=0, cmpe=0, adrs=None)¶ An IPv6 Routing Header for Source Routes with the RPL (RFC 6554) encoder/decoder class.
This is used with ryu.lib.packet.ipv6.ipv6.
An instance has the following attributes at least. Most of them are same to the on-wire counterparts but in host byte order. __init__ takes the corresponding args in this order.
Attribute Description nxt Next Header size The length of the Routing header, not include the first 8 octet. (0 means automatically-calculate when encoding) type Identifies the particular Routing header variant. seg Number of route segments remaining. cmpi Number of prefix octets from segments 1 through n-1. cmpe Number of prefix octets from segment n. pad Number of octets that are used for padding after Address[n] at the end of the SRH. adrs Vector of addresses, numbered 1 to n.