lldp_ext_dot3.h
Go to the documentation of this file.
1 /**
2  * @file lldp_ext_dot3.h
3  * @brief IEEE 802.3 LLDP extension
4  *
5  * @section License
6  *
7  * SPDX-License-Identifier: GPL-2.0-or-later
8  *
9  * Copyright (C) 2010-2023 Oryx Embedded SARL. All rights reserved.
10  *
11  * This file is part of CycloneTCP Open.
12  *
13  * This program is free software; you can redistribute it and/or
14  * modify it under the terms of the GNU General Public License
15  * as published by the Free Software Foundation; either version 2
16  * of the License, or (at your option) any later version.
17  *
18  * This program is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21  * GNU General Public License for more details.
22  *
23  * You should have received a copy of the GNU General Public License
24  * along with this program; if not, write to the Free Software Foundation,
25  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
26  *
27  * @author Oryx Embedded SARL (www.oryx-embedded.com)
28  * @version 2.2.4
29  **/
30 
31 #ifndef _LLDP_EXT_DOT3_H
32 #define _LLDP_EXT_DOT3_H
33 
34 //Dependencies
35 #include "core/net.h"
36 #include "lldp/lldp.h"
37 
38 //C++ guard
39 #ifdef __cplusplus
40 extern "C" {
41 #endif
42 
43 
44 /**
45  * @brief IEEE 802.3 subtypes
46  **/
47 
48 typedef enum
49 {
50  LLDP_DOT3_SUBTYPE_RESERVED = 0, ///<Reserved
51  LLDP_DOT3_SUBTYPE_MAC_PHY_CONFIG_STATUS = 1, ///<MAC/PHY Configuration/Status
52  LLDP_DOT3_SUBTYPE_POWER_VIA_MDI = 2, ///<Power Via MDI
53  LLDP_DOT3_SUBTYPE_LINK_AGGREGATION = 3, ///<Link Aggregation
54  LLDP_DOT3_SUBTYPE_MAX_FRAME_SIZE = 4, ///<Maximum Frame Size
55  LLDP_DOT3_SUBTYPE_POWER_VIA_MDI_MEAS = 8 ///<Power Via MDI Measurements
57 
58 
59 /**
60  * @brief Auto-negotiation support/status flags
61  **/
62 
63 typedef enum
64 {
65  LLDP_DOT3_AN_FLAG_SUPPORT = 0x01, ///<Auto-negotiation support
66  LLDP_DOT3_AN_FLAG_STATUS = 0x02 ///<Auto-negotiation status
68 
69 
70 /**
71  * @brief PMD auto-negotiation advertised capability
72  **/
73 
74 typedef enum
75 {
76  LLDP_DOT3_PMD_AN_ADV_CAP_OTHER = 0x8000, ///<Other or unknown
77  LLDP_DOT3_PMD_AN_ADV_CAP_10BT_HD = 0x4000, ///<10BASE-T half-duplex mode
78  LLDP_DOT3_PMD_AN_ADV_CAP_10BT_FD = 0x2000, ///<10BASE-T full-duplex mode
79  LLDP_DOT3_PMD_AN_ADV_CAP_100BT4 = 0x1000, ///<100BASE-T4
80  LLDP_DOT3_PMD_AN_ADV_CAP_100BT_HD = 0x0800, ///<100BASE-TX half-duplex mode
81  LLDP_DOT3_PMD_AN_ADV_CAP_100BT_FD = 0x0400, ///<100BASE-TX full-duplex mode
82  LLDP_DOT3_PMD_AN_ADV_CAP_100BT2_HD = 0x0200, ///<100BASE-T2 half-duplex mode
83  LLDP_DOT3_PMD_AN_ADV_CAP_100BT2_FD = 0x0100, ///<100BASE-T2 full-duplex mode
84  LLDP_DOT3_PMD_AN_ADV_CAP_PAUSE = 0x0080, ///<PAUSE for full-duplex links
85  LLDP_DOT3_PMD_AN_ADV_CAP_ASYM_PAUSE = 0x0040, ///<Asymmetric PAUSE for full-duplex links
86  LLDP_DOT3_PMD_AN_ADV_CAP_SYM_PAUSE = 0x0020, ///<Symmetric PAUSE for full-duplex links
87  LLDP_DOT3_PMD_AN_ADV_CAP_ASYM_SYM_PAUSE = 0x0010, ///<Asymmetric and Symmetric PAUSE for full-duplex links
88  LLDP_DOT3_PMD_AN_ADV_CAP_1000BX_HD = 0x0008, ///<1000BASE-X, -LX, -SX, -CX half-duplex mode
89  LLDP_DOT3_PMD_AN_ADV_CAP_1000BX_FD = 0x0004, ///<1000BASE-X, -LX, -SX, -CX full-duplex mode
90  LLDP_DOT3_PMD_AN_ADV_CAP_1000BT_HD = 0x0002, ///<1000BASE-T half-duplex mode
91  LLDP_DOT3_PMD_AN_ADV_CAP_1000BT_FD = 0x0001 ///<1000BASE-T full-duplex mode
93 
94 
95 /**
96  * @brief Operational MAU types
97  **/
98 
99 typedef enum
100 {
101  LLDP_DOT3_MAU_TYPE_INVALID = 0, ///<Invalid
102  LLDP_DOT3_MAU_TYPE_10BT_HD = 10, ///<dot3MauType10BaseTHD
103  LLDP_DOT3_MAU_TYPE_10BT_FD = 11, ///<dot3MauType10BaseTFD
104  LLDP_DOT3_MAU_TYPE_100BT4 = 14, ///<dot3MauType100BaseT4
105  LLDP_DOT3_MAU_TYPE_100BTX_HD = 15, ///<dot3MauType100BaseTXHD
106  LLDP_DOT3_MAU_TYPE_100BTX_FD = 16, ///<dot3MauType100BaseTXFD
107  LLDP_DOT3_MAU_TYPE_100BT2_HD = 19, ///<dot3MauType100BaseT2HD
108  LLDP_DOT3_MAU_TYPE_100BT2_FD = 20, ///<dot3MauType100BaseT2FD
109  LLDP_DOT3_MAU_TYPE_1000BX_HD = 21, ///<dot3MauType1000BaseXHD
110  LLDP_DOT3_MAU_TYPE_1000BX_FD = 22, ///<dot3MauType1000BaseXFD
111  LLDP_DOT3_MAU_TYPE_1000BT_HD = 29, ///<dot3MauType1000BaseTHD
112  LLDP_DOT3_MAU_TYPE_1000BT_FD = 30, ///<dot3MauType1000BaseTFD
113  LLDP_DOT3_MAU_TYPE_100BT1 = 105, ///<dot3MauType100baseT1
114  LLDP_DOT3_MAU_TYPE_10BT1L = 141 ///<dot3MauType10baseT1L
116 
117 
118 /**
119  * @brief MDI power capability/status flags
120  **/
121 
122 typedef enum
123 {
124  LLDP_DOT3_MDI_POWER_FLAG_PORT_CLASS = 0x01, ///<Port class
125  LLDP_DOT3_MDI_POWER_FLAG_PORT_CLASS_PD = 0x00, ///<Port class - PD
126  LLDP_DOT3_MDI_POWER_FLAG_PORT_CLASS_PSE = 0x01, ///<Port class - PSE
127  LLDP_DOT3_MDI_POWER_FLAG_PSE_MDI_POWER_SUPPORT = 0x02, ///<PSE MDI power support
128  LLDP_DOT3_MDI_POWER_FLAG_PSE_MDI_POWER_STATE = 0x04, ///<PSE MDI power state
129  LLDP_DOT3_MDI_POWER_FLAG_PSE_PAIRS_CTRL_ABILITY = 0x08, ///<PSE pairs control ability
131 
132 
133 /**
134  * @brief PSE power pair
135  **/
136 
137 typedef enum
138 {
141  LLDP_DOT3_PSE_POWER_PAIR_ALT_A = 1, ///<Alternative A
142  LLDP_DOT3_PSE_POWER_PAIR_ALT_B = 2 ///<Alternative B
144 
145 
146 /**
147  * @brief power class
148  **/
149 
150 typedef enum
151 {
152  LLDP_DOT3_POWER_CLASS_0 = 1, ///<Class 0 PD
153  LLDP_DOT3_POWER_CLASS_1 = 2, ///<Class 1 PD
154  LLDP_DOT3_POWER_CLASS_2 = 3, ///<Class 2 PD
155  LLDP_DOT3_POWER_CLASS_3 = 4, ///<Class 3 PD
156  LLDP_DOT3_POWER_CLASS_4 = 5 ///<Class 4 and above PD
158 
159 
160 /**
161  * @brief power type
162  **/
163 
164 typedef enum
165 {
166  LLDP_DOT3_POWER_TYPE_2_PSE = 0, ///<Type 2 PSE
167  LLDP_DOT3_POWER_TYPE_2_PD = 1, ///<Type 2 PD
168  LLDP_DOT3_POWER_TYPE_1_PSE = 2, ///<Type 1 PSE
169  LLDP_DOT3_POWER_TYPE_1_PD = 3 ///<Type 1 PD
171 
172 
173 /**
174  * @brief power source
175  **/
176 
177 typedef enum
178 {
179  LLDP_DOT3_PD_POWER_SOURCE_UNKNOWN = 0, ///<Unknown (PD device type)
180  LLDP_DOT3_PD_POWER_SOURCE_PSE = 1, ///<PSE (PD device type)
181  LLDP_DOT3_PD_POWER_SOURCE_RESERVED = 2, ///<Reserved (PD device type)
182  LLDP_DOT3_PD_POWER_SOURCE_PSE_AND_LOCAL = 3, ///<PSE and local (PD device type)
183  LLDP_DOT3_PSE_POWER_SOURCE_UNKNOWN = 0, ///<Unknown (PSE device type)
184  LLDP_DOT3_PSE_POWER_SOURCE_PRIMARY = 1, ///<Primary power source (PSE device type)
185  LLDP_DOT3_PSE_POWER_SOURCE_BACKUP = 2, ///<Backup source (PSE device type)
186  LLDP_DOT3_PSE_POWER_SOURCE_RESERVED = 3 ///<Reserved (PSE device type)
188 
189 
190 /**
191  * @brief Power priority
192  **/
193 
194 typedef enum
195 {
199  LLDP_DOT3_POWER_PRIORITY_LOW = 3 ///<Low
201 
202 
203 /**
204  * @brief Power status
205  **/
206 
207 typedef enum
208 {
248 
249 
250 /**
251  * @brief System setup
252  **/
253 
254 typedef enum
255 {
266 
267 
268 /**
269  * @brief Autoclass field
270  **/
271 
272 typedef enum
273 {
279 
280 
281 /**
282  * @brief Power down field
283  **/
284 
285 typedef enum
286 {
288  LLDP_DOT3_POWER_DOWN_TIME = 0x03FFFF
290 
291 
292 /**
293  * @brief Link aggregation capability/status flags
294  **/
295 
296 typedef enum
297 {
298  LLDP_DOT3_LINK_AGGREGATION_FLAG_CAP = 0x01, ///<Aggregation capability
299  LLDP_DOT3_LINK_AGGREGATION_FLAG_STATUS = 0x02, ///<Aggregation status
301 
302 
303 //CodeWarrior or Win32 compiler?
304 #if defined(__CWCC__) || defined(_WIN32)
305  #pragma pack(push, 1)
306 #endif
307 
308 
309 /**
310  * @brief MAC/PHY Configuration/Status TLV
311  **/
312 
313 typedef __start_packed struct
314 {
315  uint8_t autoNegSupportStatus; //0
316  uint16_t pmdAutoNegAdvCap; //1-2
317  uint16_t operationalMauType; //3-4
319 
320 
321 /**
322  * @brief Power Via MDI TLV
323  **/
324 
325 typedef __start_packed struct
326 {
327  uint8_t mdiPowerSupport; //0
328  uint8_t psePowerPair; //1
329  uint8_t powerClass; //2
331 
332 
333 /**
334  * @brief Link Aggregation TLV
335  **/
336 
337 typedef __start_packed struct
338 {
339  uint8_t aggregationStatus; //0
340  uint32_t aggregatedPortId; //2-5
342 
343 
344 /**
345  * @brief Maximum Frame Size TLV
346  **/
347 
348 typedef __start_packed struct
349 {
350  uint16_t maxFrameSize; //0-1
352 
353 
354 /**
355  * @brief Power Via MDI Measurements TLV
356  **/
357 
358 typedef __start_packed struct
359 {
360  uint8_t measurements[20]; //0-19
361  uint16_t psePowerPriceIndex; //20-21
363 
364 
365 /**
366  * @brief DLL Classification extension
367  **/
368 
369 typedef __start_packed struct
370 {
371 #if defined(_CPU_BIG_ENDIAN) && !defined(__ICCRX__)
372  uint8_t powerType : 2; //0
373  uint8_t powerSource : 2;
374  uint8_t reserved : 1;
375  uint8_t pd4pid : 1;
376  uint8_t powerPriority : 2;
377 #else
378  uint8_t powerPriority : 2; //0
379  uint8_t pd4pid : 1;
380  uint8_t reserved : 1;
381  uint8_t powerSource : 2;
382  uint8_t powerType : 2;
383 #endif
384  uint16_t pdRequestedPower; //1-2
385  uint16_t pseAllocatedPower; //3-4
387 
388 
389 /**
390  * @brief Type 3 and Type 4 extension
391  **/
392 
393 typedef __start_packed struct
394 {
395  uint16_t pdRequestedPowerA; //0-1
396  uint16_t pdRequestedPowerB; //2-3
397  uint16_t pseAllocatedPowerA; //4-5
398  uint16_t pseAllocatedPowerB; //6-7
399  uint16_t powerStatus; //8-9
400  uint8_t systemSetup; //10
401  uint16_t pseMaxAvailablePower; //11-12
402  uint8_t autoclass; //13
403  uint8_t powerDown[3]; //14-16
405 
406 
407 //CodeWarrior or Win32 compiler?
408 #if defined(__CWCC__) || defined(_WIN32)
409  #pragma pack(pop)
410 #endif
411 
412 //IEEE 802.3 related functions
414  uint_t portIndex, uint8_t autoNegSupportStatus, uint16_t pmdAutoNegAdvCap,
415  uint16_t operationalMauType);
416 
418  uint_t portIndex, uint8_t mdiPowerSupport,
420  const LldpDot3DllClassExt *dllClassExt, const LldpDot3Type34Ext *type34Ext);
421 
423  uint_t portIndex, uint8_t aggregationStatus, uint32_t aggregatedPortId);
424 
426  uint_t portIndex, uint16_t maxFrameSize);
427 
429  uint_t portIndex, uint8_t measurements[20], uint16_t psePowerPriceIndex);
430 
433 
434 //C++ guard
435 #ifdef __cplusplus
436 }
437 #endif
438 
439 #endif
@ LLDP_DOT3_PSE_POWER_PAIR_SIGNAL
Signal.
@ LLDP_DOT3_POWER_TYPE_2_PD
Type 2 PD.
@ LLDP_DOT3_MAU_TYPE_10BT_FD
dot3MauType10BaseTFD
@ LLDP_DOT3_MAU_TYPE_100BTX_HD
dot3MauType100BaseTXHD
@ LLDP_DOT3_POWER_STATUS_POWER_CLASS_EXT_CLASS_3
@ LLDP_DOT3_MDI_POWER_FLAG_PSE_MDI_POWER_SUPPORT
PSE MDI power support.
@ LLDP_DOT3_POWER_STATUS_DUAL_SIGN_POWER_CLASS_EXT_B_CLASS_4
@ LLDP_DOT3_SYSTEM_SETUP_POWER_TYPE_EXT_TYPE_4_SINGLE_SIGN_PD
@ LLDP_DOT3_MAU_TYPE_100BT4
dot3MauType100BaseT4
@ LLDP_DOT3_POWER_CLASS_0
Class 0 PD.
uint8_t powerSource
@ LLDP_DOT3_SUBTYPE_POWER_VIA_MDI
Power Via MDI.
Definition: lldp_ext_dot3.h:52
@ LLDP_DOT3_MAU_TYPE_1000BT_FD
dot3MauType1000BaseTFD
LldpDot3PowerPriority
Power priority.
uint8_t systemSetup
@ LLDP_DOT3_POWER_STATUS_PSE_POWERING_STATUS_2_PAIR
@ LLDP_DOT3_SYSTEM_SETUP_POWER_TYPE_RESERVED
@ LLDP_DOT3_LINK_AGGREGATION_FLAG_CAP
Aggregation capability.
@ LLDP_DOT3_POWER_STATUS_DUAL_SIGN_POWER_CLASS_EXT_A_SINGLE_SIGN_PD
uint8_t powerType
@ LLDP_DOT3_SYSTEM_SETUP_POWER_TYPE_EXT_TYPE_3_SINGLE_SIGN_PD
@ LLDP_DOT3_PMD_AN_ADV_CAP_ASYM_PAUSE
Asymmetric PAUSE for full-duplex links.
Definition: lldp_ext_dot3.h:85
@ LLDP_DOT3_MDI_POWER_FLAG_PSE_PAIRS_CTRL_ABILITY
PSE pairs control ability.
uint16_t pdRequestedPowerB
@ LLDP_DOT3_PMD_AN_ADV_CAP_10BT_FD
10BASE-T full-duplex mode
Definition: lldp_ext_dot3.h:78
@ LLDP_DOT3_POWER_STATUS_POWER_CLASS_EXT_CLASS_5
uint8_t reserved
@ LLDP_DOT3_AUTOCLASS_COMPLETED
error_t lldpDot3SetLocalMacPhyConfigStatus(LldpAgentContext *context, uint_t portIndex, uint8_t autoNegSupportStatus, uint16_t pmdAutoNegAdvCap, uint16_t operationalMauType)
Set MAC/PHY configuration/status.
Definition: lldp_ext_dot3.c:57
@ LLDP_DOT3_SYSTEM_SETUP_POWER_TYPE_EXT_TYPE_3_DUAL_SIGN_PD
uint16_t pseAllocatedPower
uint8_t powerClass
@ LLDP_DOT3_POWER_STATUS_POWER_CLASS_EXT_CLASS_8
@ LLDP_DOT3_PD_POWER_SOURCE_RESERVED
Reserved (PD device type)
@ LLDP_DOT3_MDI_POWER_FLAG_PSE_MDI_POWER_STATE
PSE MDI power state.
@ LLDP_DOT3_PMD_AN_ADV_CAP_100BT2_HD
100BASE-T2 half-duplex mode
Definition: lldp_ext_dot3.h:82
@ LLDP_DOT3_MAU_TYPE_100BT1
dot3MauType100baseT1
uint16_t pseAllocatedPowerA
@ LLDP_DOT3_POWER_TYPE_1_PD
Type 1 PD.
@ LLDP_DOT3_PD_POWER_SOURCE_PSE
PSE (PD device type)
error_t lldpDot3SetLocalPowerViaMdi(LldpAgentContext *context, uint_t portIndex, uint8_t mdiPowerSupport, LldpDot3PsePowerPair psePowerPair, LldpDot3PowerClass powerClass, const LldpDot3DllClassExt *dllClassExt, const LldpDot3Type34Ext *type34Ext)
Set power-via-MDI.
@ LLDP_DOT3_POWER_STATUS_PSE_POWERING_STATUS_4_PAIR_SINGLE_SIGN_PD
@ LLDP_DOT3_POWER_STATUS_POWER_CLASS_EXT_CLASS_7
@ LLDP_DOT3_PMD_AN_ADV_CAP_OTHER
Other or unknown.
Definition: lldp_ext_dot3.h:76
uint8_t autoclass
LldpDot3PowerStatus
Power status.
LldpDot3LinkAggregationFlag
Link aggregation capability/status flags.
@ LLDP_DOT3_MAU_TYPE_10BT_HD
dot3MauType10BaseTHD
@ LLDP_DOT3_POWER_STATUS_POWER_CLASS_EXT_CLASS_2
@ LLDP_DOT3_POWER_PRIORITY_HIGH
High.
uint16_t pdRequestedPowerA
@ LLDP_DOT3_AN_FLAG_STATUS
Auto-negotiation status.
Definition: lldp_ext_dot3.h:66
uint8_t psePowerPair
@ LLDP_DOT3_MAU_TYPE_10BT1L
dot3MauType10baseT1L
@ LLDP_DOT3_SUBTYPE_RESERVED
Reserved.
Definition: lldp_ext_dot3.h:50
@ LLDP_DOT3_PSE_POWER_SOURCE_BACKUP
Backup source (PSE device type)
@ LLDP_DOT3_MAU_TYPE_1000BX_FD
dot3MauType1000BaseXFD
@ LLDP_DOT3_PSE_POWER_SOURCE_PRIMARY
Primary power source (PSE device type)
@ LLDP_DOT3_POWER_STATUS_DUAL_SIGN_POWER_CLASS_EXT_B_SINGLE_SIGN_PD
uint16_t powerStatus
error_t lldpDot3SetLocalMaxFrameSize(LldpAgentContext *context, uint_t portIndex, uint16_t maxFrameSize)
Set maximum frame size.
__start_packed struct @6 LldpDot3Type34Ext
Type 3 and Type 4 extension.
@ LLDP_DOT3_POWER_STATUS_DUAL_SIGN_POWER_CLASS_EXT_B_CLASS_3
LldpDot3PmdAnAdvCapability
PMD auto-negotiation advertised capability.
Definition: lldp_ext_dot3.h:75
error_t
Error codes.
Definition: error.h:43
@ LLDP_DOT3_MAU_TYPE_100BT2_FD
dot3MauType100BaseT2FD
@ LLDP_DOT3_POWER_STATUS_DUAL_SIGN_POWER_CLASS_EXT_A_CLASS_5
error_t lldpDot3SetLocalLinkAggregation(LldpAgentContext *context, uint_t portIndex, uint8_t aggregationStatus, uint32_t aggregatedPortId)
Set Link aggregation.
uint8_t measurements[20]
@ LLDP_DOT3_SYSTEM_SETUP_POWER_TYPE_EXT_TYPE_4_PSE
@ LLDP_DOT3_MAU_TYPE_100BT2_HD
dot3MauType100BaseT2HD
LldpDot3MauType
Operational MAU types.
@ LLDP_DOT3_POWER_STATUS_DUAL_SIGN_POWER_CLASS_EXT_B_CLASS_2
uint16_t psePowerPriceIndex
@ LLDP_DOT3_SYSTEM_SETUP_POWER_TYPE_EXT_TYPE_3_PSE
@ LLDP_DOT3_POWER_TYPE_2_PSE
Type 2 PSE.
__start_packed struct @0 LldpDot3MacPhyConfigStatusTlv
MAC/PHY Configuration/Status TLV.
__start_packed struct _Ipv4Header __end_packed
uint32_t aggregatedPortId
@ LLDP_DOT3_PMD_AN_ADV_CAP_100BT4
100BASE-T4
Definition: lldp_ext_dot3.h:79
@ LLDP_DOT3_PSE_POWER_SOURCE_UNKNOWN
Unknown (PSE device type)
@ LLDP_DOT3_PD_POWER_SOURCE_PSE_AND_LOCAL
PSE and local (PD device type)
@ LLDP_DOT3_POWER_STATUS_PSE_POWER_PAIRS_EXT
@ LLDP_DOT3_MAU_TYPE_1000BT_HD
dot3MauType1000BaseTHD
@ LLDP_DOT3_SYSTEM_SETUP_POWER_TYPE_EXT
@ LLDP_DOT3_POWER_STATUS_PSE_POWERING_STATUS_4_PAIR_DUAL_SIGN_PD
uint8_t mdiPowerSupport
@ LLDP_DOT3_SUBTYPE_MAX_FRAME_SIZE
Maximum Frame Size.
Definition: lldp_ext_dot3.h:54
__start_packed struct @3 LldpDot3MaxFrameSizeTlv
Maximum Frame Size TLV.
@ LLDP_DOT3_PSE_POWER_PAIR_ALT_B
Alternative B.
@ LLDP_DOT3_PMD_AN_ADV_CAP_SYM_PAUSE
Symmetric PAUSE for full-duplex links.
Definition: lldp_ext_dot3.h:86
uint16_t pseMaxAvailablePower
LldpDot3SystemSetup
System setup.
@ LLDP_DOT3_PMD_AN_ADV_CAP_ASYM_SYM_PAUSE
Asymmetric and Symmetric PAUSE for full-duplex links.
Definition: lldp_ext_dot3.h:87
LldpDot3PowerType
power type
LldpDot3MdiPowerFlags
MDI power capability/status flags.
uint8_t aggregationStatus
@ LLDP_DOT3_PMD_AN_ADV_CAP_100BT2_FD
100BASE-T2 full-duplex mode
Definition: lldp_ext_dot3.h:83
@ LLDP_DOT3_PMD_AN_ADV_CAP_1000BT_HD
1000BASE-T half-duplex mode
Definition: lldp_ext_dot3.h:90
@ LLDP_DOT3_POWER_STATUS_DUAL_SIGN_POWER_CLASS_EXT_A_CLASS_2
@ LLDP_DOT3_POWER_STATUS_PD_POWERED_STATUS_4_PAIR_DUAL_SIGN_PD
@ LLDP_DOT3_POWER_STATUS_PD_POWERED_STATUS_SINGLE_SIGN_PD
@ LLDP_DOT3_LINK_AGGREGATION_FLAG_STATUS
Aggregation status.
@ LLDP_DOT3_PMD_AN_ADV_CAP_100BT_FD
100BASE-TX full-duplex mode
Definition: lldp_ext_dot3.h:81
@ LLDP_DOT3_POWER_STATUS_DUAL_SIGN_POWER_CLASS_EXT_B
uint16_t pdRequestedPower
uint8_t subtype
Definition: lldp_tlv.h:309
LldpDot3AnFlags
Auto-negotiation support/status flags.
Definition: lldp_ext_dot3.h:64
error_t lldpDot3SetLocalPowerViaMdiMeas(LldpAgentContext *context, uint_t portIndex, uint8_t measurements[20], uint16_t psePowerPriceIndex)
Set power-via-MDI measurements.
@ LLDP_DOT3_PMD_AN_ADV_CAP_1000BT_FD
1000BASE-T full-duplex mode
Definition: lldp_ext_dot3.h:91
@ LLDP_DOT3_PSE_POWER_SOURCE_RESERVED
Reserved (PSE device type)
@ LLDP_DOT3_POWER_DOWN_REQUEST
LldpDot3PowerDown
Power down field.
@ LLDP_DOT3_PSE_POWER_PAIR_ALT_A
Alternative A.
@ LLDP_DOT3_POWER_STATUS_DUAL_SIGN_POWER_CLASS_EXT_A_CLASS_3
@ LLDP_DOT3_MDI_POWER_FLAG_PORT_CLASS
Port class.
__start_packed struct @1 LldpDot3PowerViaMdiTlv
Power Via MDI TLV.
LldpDot3PsePowerPair
PSE power pair.
@ LLDP_DOT3_POWER_TYPE_1_PSE
Type 1 PSE.
@ LLDP_DOT3_POWER_STATUS_PD_POWERED_STATUS_2_PAIR_DUAL_SIGN_PD
@ LLDP_DOT3_POWER_CLASS_1
Class 1 PD.
@ LLDP_DOT3_POWER_STATUS_PSE_POWERING_STATUS
uint16_t maxFrameSize
LldpDot3Autoclass
Autoclass field.
__start_packed struct @5 LldpDot3DllClassExt
DLL Classification extension.
@ LLDP_DOT3_MAU_TYPE_INVALID
Invalid.
@ LLDP_DOT3_POWER_STATUS_POWER_CLASS_EXT_CLASS_1
error_t lldpDot3DeleteLocalTlv(LldpAgentContext *context, LldpDot3Subtype subtype)
Remove all IEEE 802.3 specific TLVs with specified subtype.
@ LLDP_DOT3_POWER_PRIORITY_CRITICAL
Critical.
@ LLDP_DOT3_POWER_CLASS_2
Class 2 PD.
uint8_t powerDown[3]
@ LLDP_DOT3_MDI_POWER_FLAG_PORT_CLASS_PSE
Port class - PSE.
@ LLDP_DOT3_POWER_CLASS_3
Class 3 PD.
@ LLDP_DOT3_POWER_DOWN_TIME
@ LLDP_DOT3_PMD_AN_ADV_CAP_PAUSE
PAUSE for full-duplex links.
Definition: lldp_ext_dot3.h:84
uint8_t autoNegSupportStatus
@ LLDP_DOT3_PMD_AN_ADV_CAP_100BT_HD
100BASE-TX half-duplex mode
Definition: lldp_ext_dot3.h:80
uint16_t operationalMauType
@ LLDP_DOT3_POWER_STATUS_POWER_CLASS_EXT_CLASS_6
@ LLDP_DOT3_PD_POWER_SOURCE_UNKNOWN
Unknown (PD device type)
uint8_t pd4pid
@ LLDP_DOT3_POWER_STATUS_DUAL_SIGN_POWER_CLASS_EXT_A_2_PAIR_ONLY_PSE
@ LLDP_DOT3_MDI_POWER_FLAG_PORT_CLASS_PD
Port class - PD.
@ LLDP_DOT3_PMD_AN_ADV_CAP_1000BX_HD
1000BASE-X, -LX, -SX, -CX half-duplex mode
Definition: lldp_ext_dot3.h:88
@ LLDP_DOT3_POWER_PRIORITY_LOW
Low.
#define LldpAgentContext
Definition: lldp.h:40
@ LLDP_DOT3_POWER_STATUS_POWER_CLASS_EXT_CLASS_4
@ LLDP_DOT3_POWER_STATUS_DUAL_SIGN_POWER_CLASS_EXT_A_CLASS_1
LldpDot3Subtype
IEEE 802.3 subtypes.
Definition: lldp_ext_dot3.h:49
@ LLDP_DOT3_AN_FLAG_SUPPORT
Auto-negotiation support.
Definition: lldp_ext_dot3.h:65
@ LLDP_DOT3_SYSTEM_SETUP_PD_LOAD
@ LLDP_DOT3_AUTOCLASS_REQUEST
@ LLDP_DOT3_POWER_STATUS_POWER_CLASS_EXT_DUAL_SIGN_PD
__start_packed struct @2 LldpDot3LinkAggregationTlv
Link Aggregation TLV.
@ LLDP_DOT3_MAU_TYPE_100BTX_FD
dot3MauType100BaseTXFD
LldpDot3PowerSource
power source
@ LLDP_DOT3_MAU_TYPE_1000BX_HD
dot3MauType1000BaseXHD
LLDP (Link Layer Discovery Protocol)
@ LLDP_DOT3_POWER_STATUS_POWER_CLASS_EXT
@ LLDP_DOT3_POWER_CLASS_4
Class 4 and above PD.
@ LLDP_DOT3_SUBTYPE_MAC_PHY_CONFIG_STATUS
MAC/PHY Configuration/Status.
Definition: lldp_ext_dot3.h:51
@ LLDP_DOT3_SUBTYPE_LINK_AGGREGATION
Link Aggregation.
Definition: lldp_ext_dot3.h:53
@ LLDP_DOT3_POWER_STATUS_DUAL_SIGN_POWER_CLASS_EXT_A_CLASS_4
unsigned int uint_t
Definition: compiler_port.h:50
TCP/IP stack core.
@ LLDP_DOT3_POWER_PRIORITY_UNKNOWN
Unknown.
@ LLDP_DOT3_PMD_AN_ADV_CAP_10BT_HD
10BASE-T half-duplex mode
Definition: lldp_ext_dot3.h:77
@ LLDP_DOT3_POWER_STATUS_DUAL_SIGN_POWER_CLASS_EXT_B_2_PAIR_ONLY_PSE
@ LLDP_DOT3_AUTOCLASS_RESERVED
@ LLDP_DOT3_AUTOCLASS_PSE_SUPPORT
@ LLDP_DOT3_PSE_POWER_PAIR_SPARE
Spare.
@ LLDP_DOT3_POWER_STATUS_PD_POWERED_STATUS
@ LLDP_DOT3_PMD_AN_ADV_CAP_1000BX_FD
1000BASE-X, -LX, -SX, -CX full-duplex mode
Definition: lldp_ext_dot3.h:89
uint16_t pmdAutoNegAdvCap
@ LLDP_DOT3_POWER_STATUS_PSE_POWER_PAIRS_EXT_BOTH
@ LLDP_DOT3_POWER_STATUS_DUAL_SIGN_POWER_CLASS_EXT_B_CLASS_1
LldpDot3PowerClass
power class
@ LLDP_DOT3_POWER_STATUS_DUAL_SIGN_POWER_CLASS_EXT_B_CLASS_5
__start_packed struct @4 LldpDot3PowerViaMdiMeasTlv
Power Via MDI Measurements TLV.
@ LLDP_DOT3_SYSTEM_SETUP_POWER_TYPE_EXT_TYPE_4_DUAL_SIGN_PD
uint16_t pseAllocatedPowerB
uint8_t powerPriority
@ LLDP_DOT3_POWER_STATUS_PSE_POWER_PAIRS_EXT_ALT_A
@ LLDP_DOT3_POWER_STATUS_DUAL_SIGN_POWER_CLASS_EXT_A
@ LLDP_DOT3_POWER_STATUS_PSE_POWER_PAIRS_EXT_ALT_B
@ LLDP_DOT3_SUBTYPE_POWER_VIA_MDI_MEAS
Power Via MDI Measurements.
Definition: lldp_ext_dot3.h:55