os_ken.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).
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 | 
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. | 
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.
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.
os_ken.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 | 
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.
 
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.