iPXE
eth_slow.h File Reference

Ethernet slow protocols. More...

Go to the source code of this file.

Data Structures

struct  eth_slow_header
 Slow protocols header. More...
struct  eth_slow_tlv_header
 TLV (type, length, value) header. More...
struct  eth_slow_terminator_tlv
 Terminator TLV. More...
struct  eth_slow_lacp_entity_tlv
 LACP entity (actor or partner) TLV. More...
struct  eth_slow_lacp_collector_tlv
 LACP collector TLV. More...
struct  eth_slow_marker_tlv
 Marker TLV. More...
struct  eth_slow_lacp
 LACP packet. More...
struct  eth_slow_marker
 Marker packet. More...
union  eth_slow_packet
 Slow protocols packet. More...

Macros

#define ETH_SLOW_SUBTYPE_LACP   1
 LACP subtype.
#define ETH_SLOW_LACP_VERSION   1
 LACP version number.
#define ETH_SLOW_SUBTYPE_MARKER   2
 Marker subtype.
#define ETH_SLOW_MARKER_VERSION   1
 Marker version number.
#define ETH_SLOW_TLV_TERMINATOR   0
 Terminator type.
#define ETH_SLOW_TLV_TERMINATOR_LEN   0
 Terminator length.
#define ETH_SLOW_TLV_LACP_ACTOR   1
 LACP actor type.
#define ETH_SLOW_TLV_LACP_ACTOR_LEN    ( sizeof ( struct eth_slow_lacp_entity_tlv ) )
 LACP actor length.
#define ETH_SLOW_TLV_LACP_PARTNER   2
 LACP partner type.
#define ETH_SLOW_TLV_LACP_PARTNER_LEN    ( sizeof ( struct eth_slow_lacp_entity_tlv ) )
 LACP partner length.
#define ETH_SLOW_TLV_LACP_COLLECTOR   3
 LACP collector type.
#define ETH_SLOW_TLV_LACP_COLLECTOR_LEN    ( sizeof ( struct eth_slow_lacp_collector_tlv ) )
 LACP collector length.
#define ETH_SLOW_TLV_MARKER_REQUEST   1
 Marker request type.
#define ETH_SLOW_TLV_MARKER_REQUEST_LEN    ( sizeof ( struct eth_slow_marker_tlv ) )
 Marker request length.
#define ETH_SLOW_TLV_MARKER_RESPONSE   2
 Marker response type.
#define ETH_SLOW_TLV_MARKER_RESPONSE_LEN    ( sizeof ( struct eth_slow_marker_tlv ) )
 Marker response length.
#define LACP_SYSTEM_PRIORITY_MAX   0xffff
 Maximum system priority.
#define LACP_PORT_PRIORITY_MAX   0xff
 Maximum port priority.
#define LACP_STATE_ACTIVE   0x01
 LACP entity is active.
#define LACP_STATE_FAST   0x02
 LACP timeout is short.
#define LACP_STATE_AGGREGATABLE   0x04
 LACP link is aggregateable.
#define LACP_STATE_IN_SYNC   0x08
 LACP link is in synchronisation.
#define LACP_STATE_COLLECTING   0x10
 LACP link is collecting (receiving)
#define LACP_STATE_DISTRIBUTING   0x20
 LACP link is distributing (transmitting)
#define LACP_STATE_DEFAULTED   0x40
 LACP entity is using defaulted partner information.
#define LACP_STATE_EXPIRED   0x80
 LACP entity receive state machine is in EXPIRED.
#define LACP_INTERVAL_FAST   1
 LACP fast interval (1 second)
#define LACP_INTERVAL_SLOW   30
 LACP slow interval (30 seconds)

Functions

 FILE_LICENCE (GPL2_OR_LATER_OR_UBDL)
 FILE_SECBOOT (PERMITTED)
struct eth_slow_header __attribute__ ((packed))

Variables

uint8_t subtype
 Slow protocols subtype.
uint8_t version
 Subtype version number.
uint8_t type
 Type.
uint8_t length
 Length.
struct eth_slow_tlv_header tlv
 TLV header.
uint16_t system_priority
 System priority.
uint8_t system [ETH_ALEN]
 System identifier.
uint16_t key
 Key.
uint16_t port_priority
 Port priority.
uint16_t port
 Port identifier.
uint8_t state
 State.
uint8_t reserved [3]
 Reserved.
uint16_t max_delay
 Maximum delay (in 10us increments)
uint32_t xact
 Requester transaction ID.
uint16_t pad
 Padding.
struct eth_slow_header header
 Slow protocols header.
struct eth_slow_lacp_entity_tlv actor
 Actor information.
struct eth_slow_lacp_entity_tlv partner
 Partner information.
struct eth_slow_lacp_collector_tlv collector
 Collector information.
struct eth_slow_terminator_tlv terminator
 Terminator.
struct eth_slow_marker_tlv marker
 Marker information.
struct eth_slow_lacp lacp
 LACP packet.

Detailed Description

Ethernet slow protocols.

Definition in file eth_slow.h.

Macro Definition Documentation

◆ ETH_SLOW_SUBTYPE_LACP

#define ETH_SLOW_SUBTYPE_LACP   1

LACP subtype.

Definition at line 22 of file eth_slow.h.

Referenced by eth_slow_rx().

◆ ETH_SLOW_LACP_VERSION

#define ETH_SLOW_LACP_VERSION   1

LACP version number.

Definition at line 25 of file eth_slow.h.

Referenced by eth_slow_lacp_rx().

◆ ETH_SLOW_SUBTYPE_MARKER

#define ETH_SLOW_SUBTYPE_MARKER   2

Marker subtype.

Definition at line 28 of file eth_slow.h.

Referenced by eth_slow_rx().

◆ ETH_SLOW_MARKER_VERSION

#define ETH_SLOW_MARKER_VERSION   1

Marker version number.

Definition at line 31 of file eth_slow.h.

◆ ETH_SLOW_TLV_TERMINATOR

#define ETH_SLOW_TLV_TERMINATOR   0

Terminator type.

Definition at line 49 of file eth_slow.h.

Referenced by eth_slow_lacp_tlv_name(), and eth_slow_marker_tlv_name().

◆ ETH_SLOW_TLV_TERMINATOR_LEN

#define ETH_SLOW_TLV_TERMINATOR_LEN   0

Terminator length.

Definition at line 52 of file eth_slow.h.

◆ ETH_SLOW_TLV_LACP_ACTOR

#define ETH_SLOW_TLV_LACP_ACTOR   1

LACP actor type.

Definition at line 55 of file eth_slow.h.

Referenced by eth_slow_lacp_rx(), and eth_slow_lacp_tlv_name().

◆ ETH_SLOW_TLV_LACP_ACTOR_LEN

#define ETH_SLOW_TLV_LACP_ACTOR_LEN    ( sizeof ( struct eth_slow_lacp_entity_tlv ) )

LACP actor length.

Definition at line 58 of file eth_slow.h.

58#define ETH_SLOW_TLV_LACP_ACTOR_LEN \
59 ( sizeof ( struct eth_slow_lacp_entity_tlv ) )

Referenced by eth_slow_lacp_rx().

◆ ETH_SLOW_TLV_LACP_PARTNER

#define ETH_SLOW_TLV_LACP_PARTNER   2

LACP partner type.

Definition at line 62 of file eth_slow.h.

Referenced by eth_slow_lacp_rx(), and eth_slow_lacp_tlv_name().

◆ ETH_SLOW_TLV_LACP_PARTNER_LEN

#define ETH_SLOW_TLV_LACP_PARTNER_LEN    ( sizeof ( struct eth_slow_lacp_entity_tlv ) )

LACP partner length.

Definition at line 65 of file eth_slow.h.

65#define ETH_SLOW_TLV_LACP_PARTNER_LEN \
66 ( sizeof ( struct eth_slow_lacp_entity_tlv ) )

Referenced by eth_slow_lacp_rx().

◆ ETH_SLOW_TLV_LACP_COLLECTOR

#define ETH_SLOW_TLV_LACP_COLLECTOR   3

LACP collector type.

Definition at line 69 of file eth_slow.h.

Referenced by eth_slow_lacp_rx(), and eth_slow_lacp_tlv_name().

◆ ETH_SLOW_TLV_LACP_COLLECTOR_LEN

#define ETH_SLOW_TLV_LACP_COLLECTOR_LEN    ( sizeof ( struct eth_slow_lacp_collector_tlv ) )

LACP collector length.

Definition at line 72 of file eth_slow.h.

72#define ETH_SLOW_TLV_LACP_COLLECTOR_LEN \
73 ( sizeof ( struct eth_slow_lacp_collector_tlv ) )

Referenced by eth_slow_lacp_rx().

◆ ETH_SLOW_TLV_MARKER_REQUEST

#define ETH_SLOW_TLV_MARKER_REQUEST   1

Marker request type.

Definition at line 76 of file eth_slow.h.

Referenced by eth_slow_marker_rx(), and eth_slow_marker_tlv_name().

◆ ETH_SLOW_TLV_MARKER_REQUEST_LEN

#define ETH_SLOW_TLV_MARKER_REQUEST_LEN    ( sizeof ( struct eth_slow_marker_tlv ) )

Marker request length.

Definition at line 79 of file eth_slow.h.

79#define ETH_SLOW_TLV_MARKER_REQUEST_LEN \
80 ( sizeof ( struct eth_slow_marker_tlv ) )

◆ ETH_SLOW_TLV_MARKER_RESPONSE

#define ETH_SLOW_TLV_MARKER_RESPONSE   2

Marker response type.

Definition at line 83 of file eth_slow.h.

Referenced by eth_slow_marker_rx(), and eth_slow_marker_tlv_name().

◆ ETH_SLOW_TLV_MARKER_RESPONSE_LEN

#define ETH_SLOW_TLV_MARKER_RESPONSE_LEN    ( sizeof ( struct eth_slow_marker_tlv ) )

Marker response length.

Definition at line 86 of file eth_slow.h.

86#define ETH_SLOW_TLV_MARKER_RESPONSE_LEN \
87 ( sizeof ( struct eth_slow_marker_tlv ) )

◆ LACP_SYSTEM_PRIORITY_MAX

#define LACP_SYSTEM_PRIORITY_MAX   0xffff

Maximum system priority.

Definition at line 139 of file eth_slow.h.

Referenced by eth_slow_lacp_rx().

◆ LACP_PORT_PRIORITY_MAX

#define LACP_PORT_PRIORITY_MAX   0xff

Maximum port priority.

Definition at line 142 of file eth_slow.h.

Referenced by eth_slow_lacp_rx().

◆ LACP_STATE_ACTIVE

#define LACP_STATE_ACTIVE   0x01

LACP entity is active.

Represented by the state character "A"/"a"

Definition at line 148 of file eth_slow.h.

◆ LACP_STATE_FAST

#define LACP_STATE_FAST   0x02

LACP timeout is short.

Short timeout is one second, long timeout is 30s

Represented by the state character "F"/"f"

Definition at line 156 of file eth_slow.h.

Referenced by eth_slow_lacp_rx().

◆ LACP_STATE_AGGREGATABLE

#define LACP_STATE_AGGREGATABLE   0x04

LACP link is aggregateable.

Represented by the state characters "G"/"g"

Definition at line 162 of file eth_slow.h.

Referenced by eth_slow_lacp_rx().

◆ LACP_STATE_IN_SYNC

#define LACP_STATE_IN_SYNC   0x08

LACP link is in synchronisation.

Represented by the state characters "S"/"s"

Definition at line 168 of file eth_slow.h.

Referenced by eth_slow_lacp_rx().

◆ LACP_STATE_COLLECTING

#define LACP_STATE_COLLECTING   0x10

LACP link is collecting (receiving)

Represented by the state characters "C"/"c"

Definition at line 174 of file eth_slow.h.

Referenced by eth_slow_lacp_rx().

◆ LACP_STATE_DISTRIBUTING

#define LACP_STATE_DISTRIBUTING   0x20

LACP link is distributing (transmitting)

Represented by the state characters "D"/"d"

Definition at line 180 of file eth_slow.h.

Referenced by eth_slow_lacp_rx().

◆ LACP_STATE_DEFAULTED

#define LACP_STATE_DEFAULTED   0x40

LACP entity is using defaulted partner information.

Represented by the state characters "L"/"l"

Definition at line 186 of file eth_slow.h.

◆ LACP_STATE_EXPIRED

#define LACP_STATE_EXPIRED   0x80

LACP entity receive state machine is in EXPIRED.

Represented by the state characters "X"/"x"

Definition at line 192 of file eth_slow.h.

◆ LACP_INTERVAL_FAST

#define LACP_INTERVAL_FAST   1

LACP fast interval (1 second)

Definition at line 195 of file eth_slow.h.

Referenced by eth_slow_lacp_rx().

◆ LACP_INTERVAL_SLOW

#define LACP_INTERVAL_SLOW   30

LACP slow interval (30 seconds)

Definition at line 198 of file eth_slow.h.

Referenced by eth_slow_lacp_rx().

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL )

◆ FILE_SECBOOT()

FILE_SECBOOT ( PERMITTED )

◆ __attribute__()

struct eth_slow_header __attribute__ ( (packed) )

Variable Documentation

◆ subtype

uint8_t subtype

Slow protocols subtype.

Definition at line 1 of file eth_slow.h.

Referenced by ath5k_txq_setup(), ath_txq_setup(), and golan_eqe_port_subtype_str().

◆ version

uint8_t version

Subtype version number.

Definition at line 3 of file eth_slow.h.

◆ type

uint8_t type

Type.

This is an ETH_SLOW_TLV_XXX constant.

Definition at line 4 of file eth_slow.h.

◆ length

uint8_t length

Length.

The length includes the TLV header (except for a TLV terminator, which has a length of zero).

Definition at line 10 of file eth_slow.h.

◆ tlv

struct eth_slow_tlv_header tlv

TLV header.

Definition at line 1 of file eth_slow.h.

◆ system_priority

uint16_t system_priority

System priority.

Used to determine the order in which ports are selected for aggregation.

Definition at line 7 of file eth_slow.h.

◆ system

uint8_t system

System identifier.

Requester system.

Used to uniquely identify the system (i.e. the entity with potentially multiple ports).

Definition at line 13 of file eth_slow.h.

Referenced by eisabus_probe(), int22(), ipxe(), pxenv_file_exec(), script_exec_line(), shell(), and smsc95xx_vm3_fetch_mac().

◆ key

uint16_t key

Key.

Used to uniquely identify a group of aggregatable ports within a system.

Definition at line 19 of file eth_slow.h.

◆ port_priority

uint16_t port_priority

Port priority.

Used to determine the order in which ports are selected for aggregation.

Definition at line 25 of file eth_slow.h.

◆ port

uint16_t port

Port identifier.

Requester port.

Used to uniquely identify a port within a system.

Definition at line 30 of file eth_slow.h.

◆ state

◆ reserved

uint8_t reserved[90]

Reserved.

Definition at line 38 of file eth_slow.h.

◆ max_delay

uint16_t max_delay

Maximum delay (in 10us increments)

Definition at line 3 of file eth_slow.h.

◆ xact

uint32_t xact

Requester transaction ID.

Definition at line 7 of file eth_slow.h.

Referenced by linda_ib_epb_read(), linda_ib_epb_wait(), linda_ib_epb_write(), qib7322_ahb_read(), and qib7322_ahb_write().

◆ pad

uint16_t pad

Padding.

Definition at line 9 of file eth_slow.h.

◆ header

struct eth_slow_header header

Slow protocols header.

Definition at line 1 of file eth_slow.h.

◆ actor

Actor information.

Definition at line 3 of file eth_slow.h.

◆ partner

struct eth_slow_lacp_entity_tlv partner

Partner information.

Definition at line 5 of file eth_slow.h.

Referenced by dhe_key(), ecdhe_key(), FILE_SECBOOT(), and TLan_FinishReset().

◆ collector

struct eth_slow_lacp_collector_tlv collector

Collector information.

Definition at line 7 of file eth_slow.h.

◆ terminator

struct eth_slow_terminator_tlv terminator

Terminator.

Definition at line 9 of file eth_slow.h.

Referenced by bios_ansi_seq(), print_user_string(), and syslog_send().

◆ marker

struct eth_slow_marker marker

Marker information.

Marker packet.

Definition at line 3 of file eth_slow.h.

Referenced by eth_slow_marker_dump(), eth_slow_marker_rx(), and pem_marker().

◆ lacp

struct eth_slow_lacp lacp

LACP packet.

Definition at line 3 of file eth_slow.h.

Referenced by eth_slow_lacp_dump(), and eth_slow_lacp_rx().