Slow

class 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).

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

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.