ICMPv6¶
-
class
ryu.lib.packet.icmpv6.
echo
(id_=0, seq=0, data=None)¶ ICMPv6 sub encoder/decoder class for Echo Request and Echo Reply messages.
This is used with ryu.lib.packet.icmpv6.icmpv6 for ICMPv6 Echo Request and Echo Reply messages.
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 id Identifier seq Sequence Number data Data
-
class
ryu.lib.packet.icmpv6.
icmpv6
(type_=0, code=0, csum=0, data=b'')¶ ICMPv6 (RFC 2463) 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. __init__ takes the corresponding args in this order.
Attribute Description type_ Type code Code csum CheckSum (0 means automatically-calculate when encoding) data Payload.
ryu.lib.packet.icmpv6.echo object, ryu.lib.packet.icmpv6.nd_neighbor object, ryu.lib.packet.icmpv6.nd_router_solicit object, ryu.lib.packet.icmpv6.nd_router_advert object, ryu.lib.packet.icmpv6.mld object, or a bytearray.
-
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.icmpv6.
mld
(maxresp=0, address='::')¶ ICMPv6 sub encoder/decoder class for MLD Lister Query, MLD Listener Report, and MLD Listener Done messages. (RFC 2710)
http://www.ietf.org/rfc/rfc2710.txt
This is used with ryu.lib.packet.icmpv6.icmpv6.
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 maxresp max response time in millisecond. it is meaningful only in Query Message. address a group address value.
-
class
ryu.lib.packet.icmpv6.
mldv2_query
(maxresp=0, address='::', s_flg=0, qrv=2, qqic=0, num=0, srcs=None)¶ ICMPv6 sub encoder/decoder class for MLD v2 Lister Query messages. (RFC 3810)
http://www.ietf.org/rfc/rfc3810.txt
This is used with ryu.lib.packet.icmpv6.icmpv6.
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 maxresp max response time in millisecond. it is meaningful only in Query Message. address a group address value. s_flg when set to 1, routers suppress the timer process. qrv robustness variable for a querier. qqic an interval time for a querier in unit of seconds. num a number of the multicast servers. srcs a list of IPv6 addresses of the multicast servers.
-
class
ryu.lib.packet.icmpv6.
mldv2_report
(record_num=0, records=None)¶ ICMPv6 sub encoder/decoder class for MLD v2 Lister Report messages. (RFC 3810)
http://www.ietf.org/rfc/rfc3810.txt
This is used with ryu.lib.packet.icmpv6.icmpv6.
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 record_num a number of the group records. records a list of ryu.lib.packet.icmpv6.mldv2_report_group. None if no records.
-
class
ryu.lib.packet.icmpv6.
mldv2_report_group
(type_=0, aux_len=0, num=0, address='::', srcs=None, aux=None)¶ ICMPv6 sub encoder/decoder class for MLD v2 Lister Report Group Record messages. (RFC 3810)
This is used with ryu.lib.packet.icmpv6.mldv2_report.
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_ a group record type for v3. aux_len the length of the auxiliary data in 32-bit words. num a number of the multicast servers. address a group address value. srcs a list of IPv6 addresses of the multicast servers. aux the auxiliary data.
-
class
ryu.lib.packet.icmpv6.
nd_neighbor
(res=0, dst='::', option=None)¶ ICMPv6 sub encoder/decoder class for Neighbor Solicitation and Neighbor Advertisement messages. (RFC 4861)
This is used with ryu.lib.packet.icmpv6.icmpv6.
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 res R,S,O Flags for Neighbor Advertisement. The 3 MSBs of "Reserved" field for Neighbor Solicitation. dst Target Address option a derived object of ryu.lib.packet.icmpv6.nd_option or a bytearray. None if no options.
-
class
ryu.lib.packet.icmpv6.
nd_option_mtu
(mtu=1500)¶ ICMPv6 sub encoder/decoder class for Neighbor discovery MTU Option. (RFC 4861)
This is used with ryu.lib.packet.icmpv6.nd_router_advert.
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 mtu MTU.
-
class
ryu.lib.packet.icmpv6.
nd_option_pi
(length=0, pl=0, res1=0, val_l=0, pre_l=0, res2=0, prefix='::')¶ ICMPv6 sub encoder/decoder class for Neighbor discovery Prefix Information Option. (RFC 4861)
This is used with ryu.lib.packet.icmpv6.nd_router_advert.
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 length length of the option. (0 means automatically-calculate when encoding) pl Prefix Length. res1 L,A,R* Flags for Prefix Information. val_l Valid Lifetime. pre_l Preferred Lifetime. res2 This field is unused. It MUST be initialized to zero. prefix An IP address or a prefix of an IP address. *R flag is defined in (RFC 3775)
-
class
ryu.lib.packet.icmpv6.
nd_option_sla
(length=0, hw_src='00:00:00:00:00:00', data=None)¶ ICMPv6 sub encoder/decoder class for Neighbor discovery Source Link-Layer Address Option. (RFC 4861)
This is used with ryu.lib.packet.icmpv6.nd_neighbor, ryu.lib.packet.icmpv6.nd_router_solicit or ryu.lib.packet.icmpv6.nd_router_advert.
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 length length of the option. (0 means automatically-calculate when encoding) hw_src Link-Layer Address. NOTE: If the address is longer than 6 octets this contains the first 6 octets in the address. This implementation assumes the address has at least 6 octets. data A bytearray which contains the rest of Link-Layer Address and padding. When encoding a packet, it's user's responsibility to provide necessary padding for 8-octets alignment required by the protocol.
-
class
ryu.lib.packet.icmpv6.
nd_option_tla
(length=0, hw_src='00:00:00:00:00:00', data=None)¶ ICMPv6 sub encoder/decoder class for Neighbor discovery Target Link-Layer Address Option. (RFC 4861)
This is used with ryu.lib.packet.icmpv6.nd_neighbor.
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 length length of the option. (0 means automatically-calculate when encoding) hw_src Link-Layer Address. NOTE: If the address is longer than 6 octets this contains the first 6 octets in the address. This implementation assumes the address has at least 6 octets. data A bytearray which contains the rest of Link-Layer Address and padding. When encoding a packet, it's user's responsibility to provide necessary padding for 8-octets alignment required by the protocol.
-
class
ryu.lib.packet.icmpv6.
nd_router_advert
(ch_l=0, res=0, rou_l=0, rea_t=0, ret_t=0, options=None)¶ ICMPv6 sub encoder/decoder class for Router Advertisement messages. (RFC 4861)
This is used with ryu.lib.packet.icmpv6.icmpv6.
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 ch_l Cur Hop Limit. res M,O Flags for Router Advertisement. rou_l Router Lifetime. rea_t Reachable Time. ret_t Retrans Timer. options List of a derived object of ryu.lib.packet.icmpv6.nd_option or a bytearray. None if no options.
-
class
ryu.lib.packet.icmpv6.
nd_router_solicit
(res=0, option=None)¶ ICMPv6 sub encoder/decoder class for Router Solicitation messages. (RFC 4861)
This is used with ryu.lib.packet.icmpv6.icmpv6.
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 res This field is unused. It MUST be initialized to zero. option a derived object of ryu.lib.packet.icmpv6.nd_option or a bytearray. None if no options.