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_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.