Slow¶
-
class
ryu.lib.packet.slow.
lacp
(version=1, actor_system_priority=0, actor_system='00:00:00:00:00:00', actor_key=0, actor_port_priority=0, actor_port=0, actor_state_activity=0, actor_state_timeout=0, actor_state_aggregation=0, actor_state_synchronization=0, actor_state_collecting=0, actor_state_distributing=0, actor_state_defaulted=0, actor_state_expired=0, partner_system_priority=0, partner_system='00:00:00:00:00:00', partner_key=0, partner_port_priority=0, partner_port=0, partner_state_activity=0, partner_state_timeout=0, partner_state_aggregation=0, partner_state_synchronization=0, partner_state_collecting=0, partner_state_distributing=0, partner_state_defaulted=0, partner_state_expired=0, collector_max_delay=0)¶ Link Aggregation Control Protocol(LACP, IEEE 802.1AX) header encoder/decoder class.
http://standards.ieee.org/getieee802/download/802.1AX-2008.pdf
LACPDU format
LACPDU structure Octets Subtype = LACP 1 Version Number 1 TLV Actor TLV_type = Actor Information 1 Actor_Information_Length = 20 1 Actor_System_Priority 2 Actor_System 6 Actor_Key 2 Actor_Port_Priority 2 Actor_Port 2 Actor_State 1 Reserved 3 TLV Partner TLV_type = Partner Information 1 Partner_Information_Length = 20 1 Partner_System_Priority 2 Partner_System 6 Partner_Key 2 Partner_Port_Priority 2 Partner_Port 2 Partner_State 1 Reserved 3 TLV Collector TLV_type = Collector Information 1 Collector_Information_Length = 16 1 Collector_Max_Delay 2 Reserved 12 TLV Terminator TLV_type = Terminator 1 Terminator_Length = 0 1 Reserved 50 Terminator information uses a length value of 0 (0x00).
- NOTE--The use of a Terminator_Length of 0 is intentional.
- In TLV encoding schemes it is common practice for the terminator encoding to be 0 both for the type and the length.
Actor_State and Partner_State encoded as individual bits within a single octet as follows:
7 6 5 4 3 2 1 0 EXPR DFLT DIST CLCT SYNC AGGR TMO ACT - ACT
- bit 0. about the activity control value with regard to this link.
- TMO
- bit 1. about the timeout control value with regard to this link.
- AGGR
- bit 2. about how the system regards this link from the point of view of the aggregation.
- SYNC
- bit 3. about how the system regards this link from the point of view of the synchronization.
- CLCT
- bit 4. about collecting of incoming frames.
- DIST
- bit 5. about distributing of outgoing frames.
- DFLT
- bit 6. about the opposite system information which the system use.
- EXPR
- bit 7. about the expire state of the system.
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 version LACP version. This parameter must be set to LACP_VERSION_NUMBER(i.e. 1). actor_system_priority The priority assigned to this System. actor_system The Actor's System ID, encoded as a MAC address. actor_key The operational Key value assigned to the port by the Actor. actor_port_priority The priority assigned to this port. actor_port The port number assigned to the port by the Actor. actor_state_activity about the activity control value with regard to this link.
LACP_STATE_ACTIVE(1)
LACP_STATE_PASSIVE(0)
actor_state_timeout about the timeout control value with regard to this link.
LACP_STATE_SHORT_TIMEOUT(1)
LACP_STATE_LONG_TIMEOUT(0)
actor_state_aggregation about how the system regards this link from the point of view of the aggregation.
LACP_STATE_AGGREGATEABLE(1)
LACP_STATE_INDIVIDUAL(0)
actor_state_synchronization about how the system regards this link from the point of view of the synchronization.
LACP_STATE_IN_SYNC(1)
LACP_STATE_OUT_OF_SYNC(0)
actor_state_collecting about collecting of incoming frames.
LACP_STATE_COLLECTING_ENABLED(1)
LACP_STATE_COLLECTING_DISABLED(0)
actor_state_distributing about distributing of outgoing frames.
LACP_STATE_DISTRIBUTING_ENABLED(1)
LACP_STATE_DISTRIBUTING_DISABLED(0)
actor_state_defaulted about the Partner information which the the Actor use.
LACP_STATE_DEFAULTED_PARTNER(1)
LACP_STATE_OPERATIONAL_PARTNER(0)
actor_state_expired about the state of the Actor.
LACP_STATE_EXPIRED(1)
LACP_STATE_NOT_EXPIRED(0)
partner_system_priority The priority assigned to the Partner System. partner_system The Partner's System ID, encoded as a MAC address. partner_key The operational Key value assigned to the port by the Partner. partner_port_priority The priority assigned to this port by the Partner. partner_port The port number assigned to the port by the Partner. partner_state_activity See actor_state_activity. partner_state_timeout See actor_state_timeout. partner_state_aggregation See actor_state_aggregation. partner_state_synchronization See actor_state_synchronization. partner_state_collecting See actor_state_collecting. partner_state_distributing See actor_state_distributing. partner_state_defaulted See actor_state_defaulted. partner_state_expired See actor_state_expired. collector_max_delay the maximum time that the Frame Collector may delay. -
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.
-
class
ryu.lib.packet.slow.
slow
¶ Slow Protocol header decoder class. This class has only the parser method.
http://standards.ieee.org/getieee802/download/802.3-2012_section5.pdf
Slow Protocols Subtypes
Subtype Value Protocol Name 0 Unused - Illegal Value 1 Link Aggregation Control Protocol(LACP) 2 Link Aggregation - Marker Protocol 3 Operations, Administration, and Maintenance(OAM) 4 - 9 Reserved for future use 10 Organization Specific Slow Protocol(OSSP) 11 - 255 Unused - Illegal values -
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.
-
classmethod