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

Functions

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

Variables

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

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 21 of file eth_slow.h.

◆ ETH_SLOW_LACP_VERSION

#define ETH_SLOW_LACP_VERSION   1

LACP version number.

Definition at line 24 of file eth_slow.h.

◆ ETH_SLOW_SUBTYPE_MARKER

#define ETH_SLOW_SUBTYPE_MARKER   2

Marker subtype.

Definition at line 27 of file eth_slow.h.

◆ ETH_SLOW_MARKER_VERSION

#define ETH_SLOW_MARKER_VERSION   1

Marker version number.

Definition at line 30 of file eth_slow.h.

◆ ETH_SLOW_TLV_TERMINATOR

#define ETH_SLOW_TLV_TERMINATOR   0

Terminator type.

Definition at line 48 of file eth_slow.h.

◆ ETH_SLOW_TLV_TERMINATOR_LEN

#define ETH_SLOW_TLV_TERMINATOR_LEN   0

Terminator length.

Definition at line 51 of file eth_slow.h.

◆ ETH_SLOW_TLV_LACP_ACTOR

#define ETH_SLOW_TLV_LACP_ACTOR   1

LACP actor type.

Definition at line 54 of file eth_slow.h.

◆ 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 57 of file eth_slow.h.

◆ ETH_SLOW_TLV_LACP_PARTNER

#define ETH_SLOW_TLV_LACP_PARTNER   2

LACP partner type.

Definition at line 61 of file eth_slow.h.

◆ 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 64 of file eth_slow.h.

◆ ETH_SLOW_TLV_LACP_COLLECTOR

#define ETH_SLOW_TLV_LACP_COLLECTOR   3

LACP collector type.

Definition at line 68 of file eth_slow.h.

◆ 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 71 of file eth_slow.h.

◆ ETH_SLOW_TLV_MARKER_REQUEST

#define ETH_SLOW_TLV_MARKER_REQUEST   1

Marker request type.

Definition at line 75 of file eth_slow.h.

◆ 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 78 of file eth_slow.h.

◆ ETH_SLOW_TLV_MARKER_RESPONSE

#define ETH_SLOW_TLV_MARKER_RESPONSE   2

Marker response type.

Definition at line 82 of file eth_slow.h.

◆ 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 85 of file eth_slow.h.

◆ LACP_SYSTEM_PRIORITY_MAX

#define LACP_SYSTEM_PRIORITY_MAX   0xffff

Maximum system priority.

Definition at line 138 of file eth_slow.h.

◆ LACP_PORT_PRIORITY_MAX

#define LACP_PORT_PRIORITY_MAX   0xff

Maximum port priority.

Definition at line 141 of file eth_slow.h.

◆ LACP_STATE_ACTIVE

#define LACP_STATE_ACTIVE   0x01

LACP entity is active.

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

Definition at line 147 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 155 of file eth_slow.h.

◆ LACP_STATE_AGGREGATABLE

#define LACP_STATE_AGGREGATABLE   0x04

LACP link is aggregateable.

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

Definition at line 161 of file eth_slow.h.

◆ 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 167 of file eth_slow.h.

◆ LACP_STATE_COLLECTING

#define LACP_STATE_COLLECTING   0x10

LACP link is collecting (receiving)

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

Definition at line 173 of file eth_slow.h.

◆ LACP_STATE_DISTRIBUTING

#define LACP_STATE_DISTRIBUTING   0x20

LACP link is distributing (transmitting)

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

Definition at line 179 of file eth_slow.h.

◆ 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 185 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 191 of file eth_slow.h.

◆ LACP_INTERVAL_FAST

#define LACP_INTERVAL_FAST   1

LACP fast interval (1 second)

Definition at line 194 of file eth_slow.h.

◆ LACP_INTERVAL_SLOW

#define LACP_INTERVAL_SLOW   30

LACP slow interval (30 seconds)

Definition at line 197 of file eth_slow.h.

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL  )

◆ __attribute__()

struct eth_slow_header __attribute__ ( (packed)  )

Variable Documentation

◆ subtype

uint8_t subtype

Slow protocols subtype.

Definition at line 12 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 14 of file eth_slow.h.

◆ type

uint8_t type

Type.

This is an ETH_SLOW_TLV_XXX constant.

Definition at line 15 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 21 of file eth_slow.h.

◆ tlv

TLV header.

Definition at line 12 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 18 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 24 of file eth_slow.h.

Referenced by 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 30 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 36 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 41 of file eth_slow.h.

◆ state

uint8_t state

◆ reserved

uint8_t reserved[90]

Reserved.

Definition at line 49 of file eth_slow.h.

◆ max_delay

uint16_t max_delay

Maximum delay (in 10us increments)

Definition at line 14 of file eth_slow.h.

◆ xact

uint32_t xact

Requester transaction ID.

Definition at line 18 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 20 of file eth_slow.h.

◆ header

struct eth_slow_header header

Slow protocols header.

Definition at line 12 of file eth_slow.h.

◆ actor

Actor information.

Definition at line 14 of file eth_slow.h.

◆ partner

struct eth_slow_lacp_entity_tlv partner

Partner information.

Definition at line 16 of file eth_slow.h.

Referenced by TLan_FinishReset().

◆ collector

struct eth_slow_lacp_collector_tlv collector

Collector information.

Definition at line 18 of file eth_slow.h.

◆ terminator

struct eth_slow_terminator_tlv terminator

Terminator.

Definition at line 20 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 14 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 14 of file eth_slow.h.

Referenced by eth_slow_lacp_dump(), and eth_slow_lacp_rx().