33 APP_WORD wmsgTxInterval;
34 APP_WORD wreinitDelay;
41 #define LLDP_MSGTXHOLD 4
42 #define LLDP_MSGTXINTERVAL 5
43 #define LLDP_REINITDELAY 2
44 #define LLDP_TXDELAY 1
48 #define LLDP_MSGTXHOLD_MIN 2
49 #define LLDP_MSGTXHOLD_MAX 10
50 #define LLDP_MSGTXINTERVAL_MIN 5
51 #define LLDP_MSGTXINTERVAL_MAX 32768
52 #define LLDP_REINITDELAY_MIN 1
53 #define LLDP_REINITDELAY_MAX 10
54 #define LLDP_TXDELAY_MIN 1
55 #define LLDP_TXDELAY_MAX 8192
60 #define LLDP_ADMSTATUS_ENABLEDTXONLY 1
61 #define LLDP_ADMSTATUS_ENABLEDRXONLY 2
62 #define LLDP_ADMSTATUS_ENABLEDRXTX 3
63 #define LLDP_ADMSTATUS_DISABLED 4
66 #define LLDP_TXENABLED_PORTDESC_MASK 1
67 #define LLDP_TXENABLED_SYSNAME_MASK 2
68 #define LLDP_TXENABLED_SYSDESC_MASK 4
69 #define LLDP_TXENABLED_SYSCAP_MASK 8
70 #define LLDP_TXENABLED_ADDRMGT_MASK 16
71 #define LLDP_TXENABLED_DEFAULT 16
73 #ifdef LLDP_STD_DESC_SUPPORT
74 #define LLDP_TXENABLED_MASK_ALL (LLDP_TXENABLED_PORTDESC_MASK | LLDP_TXENABLED_SYSNAME_MASK | LLDP_TXENABLED_SYSDESC_MASK | LLDP_TXENABLED_SYSCAP_MASK | LLDP_TXENABLED_ADDRMGT_MASK)
76 #ifndef LLDP_STD_DESC_SUPPORT
77 #define LLDP_TXENABLED_MASK_ALL (LLDP_TXENABLED_ADDRMGT_MASK)
81 #define LLDP_PORT_ID_LEN_MIN 1
82 #define LLDP_PORT_ID_LEN_MAX 255
84 #define LLDP_PORT_DESC_LEN_MIN 1
85 #define LLDP_PORT_DESC_LEN_MAX 255
90 APP_BYTE byPortNumber;
91 APP_BYTE byLLDP_TxEnabled;
92 APP_BYTE byPortMAC[MAC_ADDRESS_LEN];
93 APP_BYTE byPortId[LLDP_PORT_ID_LEN_MAX+1];
94 APP_BYTE byPortSubType;
97 #ifdef LLDP_STD_DESC_SUPPORT
98 APP_BYTE sPortDesc[LLDP_PORT_DESC_LEN_MAX+1];
101 APP_LPVOID lpvWriteHandle;
106 #define LLDP_PORT_SUBTYPE_IFALIAS 1
107 #define LLDP_PORT_SUBTYPE_PORTCOMPONENT 2
108 #define LLDP_PORT_SUBTYPE_MACADDR 3
109 #define LLDP_PORT_SUBTYPE_NETADDR 4
110 #define LLDP_PORT_SUBTYPE_IFNAME 5
111 #define LLDP_PORT_SUBTYPE_AGCIRCID 6
112 #define LLDP_PORT_SUBTYPE_LOCAL 7
119 APP_BYTE byLLDP_AdminStatus;
120 APP_BOOL bLLDP_PortEnaled;
121 APP_BOOL bTooManyNeighbors;
122 APP_BOOL bSomethingChangeRemote;
123 APP_BOOL bNewTimeParameters;
128 ST_LLDP_RX_SM stLldpRx;
135 #ifdef LLDP_SUPPORT_PN
139 #ifdef LLDP_SUPPORT_8023
146 #define LLDP_OID_LENGTH 128
147 #define MAX_LOC_REM_MGT_ADDR 1
150 #define LLDP_MGT_ADDR_SUB_TYPE_IPV4 1
154 #define TLV_MANAGEMENT_ADDR_LEN 31
158 #define LLDP_MGT_ADDR_IF_SUBTYPE_UNKNOWN 1
159 #define LLDP_MGT_ADDR_IF_SUBTYPE_IFINDEX 2
160 #define LLDP_MGT_ADDR_IF_SUBTYPE_SYSPORT 3
165 APP_BYTE byMgtAddrSubTypeLen;
166 APP_BYTE byMgtAddrSubType;
167 APP_BYTE byMgtAddr[TLV_MANAGEMENT_ADDR_LEN];
168 APP_BYTE byMgtAddrItfSubType;
169 APP_DWORD dwMgtAddrItfNumber;
170 APP_BYTE byMgtAddrOidLength;
171 APP_BYTE sMgtAddrOid[LLDP_OID_LENGTH];
177 #define LLDP_CHASSIS_ID_LEN_MIN 1
178 #define LLDP_CHASSIS_ID_LEN_MAX 255
180 #define LLDP_SYS_NAME_LEN_MIN 1
181 #define LLDP_SYS_NAME_LEN_MAX 255
183 #define LLDP_SYS_DESC_LEN_MIN 1
184 #define LLDP_SYS_DESC_LEN_MAX 255
187 APP_CHAR sChassisID[LLDP_CHASSIS_ID_LEN_MAX+1];
188 APP_BYTE byChassisIDLen;
189 APP_BYTE byChassisIdSubType;
190 APP_BYTE byLocalSystemMAC[MAC_ADDRESS_LEN];
194 #ifdef LLDP_STD_DESC_SUPPORT
195 APP_BYTE sSysName[LLDP_SYS_NAME_LEN_MAX+1];
196 APP_BYTE sSysDesc[LLDP_SYS_DESC_LEN_MAX+1];
198 APP_WORD wSysCapEnabled;
206 #define LLDP_CHASSISID_COMPONENT 1
207 #define LLDP_CHASSISID_IFALIAS 2
208 #define LLDP_CHASSISID_PORTCOMPONENT 3
209 #define LLDP_CHASSISID_MAC 4
210 #define LLDP_CHASSISID_NETWORKADDR 5
211 #define LLDP_CHASSISID_IFNAME 6
212 #define LLDP_CHASSISID_LOCALLY 7
213 #define LLDP_CHASSISID_DEFAULT LLDP_CHASSISID_MAC
221 #define INC_RX_STAT_AGEOUTTOTAL(a) (a)->stLldpRx.stLldpRxStats.dwStatsAgeOutsTotal++
222 #define GET_RX_STAT_AGEOUTTOTAL(a) (a)->stLldpRx.stLldpRxStats.dwStatsAgeOutsTotal
224 #define INC_RX_STAT_FRAMEDISCARDEDTOTAL(a) (a)->stLldpRx.stLldpRxStats.dwStatsFramesDiscardedTotal++
225 #define GET_RX_STAT_FRAMEDISCARDEDTOTAL(a) (a)->stLldpRx.stLldpRxStats.dwStatsFramesDiscardedTotal
227 #define INC_RX_STAT_FRAMEINERRORTOTAL(a) (a)->stLldpRx.stLldpRxStats.dwStatsFramesInErrorsTotal++
228 #define GET_RX_STAT_FRAMEINERRORTOTAL(a) (a)->stLldpRx.stLldpRxStats.dwStatsFramesInErrorsTotal
230 #define INC_RX_STAT_FRAMEINTOTAL(a) (a)->stLldpRx.stLldpRxStats.dwStatsFramesInTotal++
231 #define GET_RX_STAT_FRAMEINTOTAL(a) (a)->stLldpRx.stLldpRxStats.dwStatsFramesInTotal
233 #define INC_RX_STAT_TLVDISCARDEDTOTAL(a) (a)->stLldpRx.stLldpRxStats.dwStatsTLVsDiscardedTotal++
234 #define GET_RX_STAT_TLVDISCARDEDTOTAL(a) (a)->stLldpRx.stLldpRxStats.dwStatsTLVsDiscardedTotal
236 #define INC_RX_STAT_TLVUNRECOGNIZEDTOTAL(a) (a)->stLldpRx.stLldpRxStats.dwStatsTLVsUnrecognizedTotal++
237 #define GET_RX_STAT_TLVUNRECOGNIZEDTOTAL(a) (a)->stLldpRx.stLldpRxStats.dwStatsTLVsUnrecognizedTotal
239 #define GET_RX_STATE(a) (a)->stLldpRx.byRxState
240 #define SET_RX_STATE(a, b) (a)->stLldpRx.byRxState = b ; \
241 LLDP_RX_TRACE("Rx Go to %d\n",b)
243 #define GET_RX_INFOAGE(a) (a)->stLldpRx.bRxInfoAge
244 #define SET_RX_INFOAGE(a, b) (a)->stLldpRx.bRxInfoAge = b
246 #define GET_RX_RCVFRAME(a) (a)->stLldpRx.bRcvFrame
247 #define SET_RX_RCVFRAME(a, b) (a)->stLldpRx.bRcvFrame = b
249 #define GET_RX_TTL(a) (a)->stLldpRx.wRxTTL
250 #define SET_RX_TTL(a, b) (a)->stLldpRx.wRxTTL = b
252 #define GET_RX_RXCHANGE(a) (a)->stLldpRx.bRxChanges
253 #define SET_RX_RXCHANGE(a, b) (a)->stLldpRx.bRxChanges = b
255 #define GET_RX_BAD_FRAME(a) (a)->stLldpRx.bBadFrame
256 #define SET_RX_BAD_FRAME(a, b) (a)->stLldpRx.bBadFrame = b
258 #define GET_RX_BUFFER(a) (a)->stLldpRx.lpbyRxFrameBuffer
260 #define GET_RX_BUFFER_LEN(a) (a)->stLldpRx.wRxFrameLen
261 #define SET_RX_BUFFER_LEN(a, b) (a)->stLldpRx.wRxFrameLen = b
263 #define GET_RX_TLV_REF(a,b) &((a)->stLldpRx.stRxTLV[b])
266 #define INC_TX_STAT_FRAMEOUTTOTAL(a) (a)->stLldpTx.stLldpTxStats.dwStatsFrameOutTotal++
267 #define GET_TX_STAT_FRAMEOUTTOTAL(a) (a)->stLldpTx.stLldpTxStats.dwStatsFrameOutTotal
269 #define GET_TX_STATE(a) (a)->stLldpTx.byTxState
270 #define SET_TX_STATE(a, b) (a)->stLldpTx.byTxState = b; \
271 LLDP_TX_TRACE("Tx Go to %d\n", b)
273 #define GET_TX_TTL(a) (a)->stLldpTx.wTxTTL
274 #define SET_TX_TTL(a, b) (a)->stLldpTx.wTxTTL = (APP_WORD)(b)
277 #define GET_ADMIN_STATUS(a) (a)->byLLDP_AdminStatus
278 #define SET_ADMIN_STATUS(a, b) (a)->byLLDP_AdminStatus = b
280 #define GET_PORT_STATE(a) (a)->bLLDP_PortEnaled
281 #define SET_PORT_STATE(a, b) (a)->bLLDP_PortEnaled = b
283 #define SET_PORT_TOOMANYNEIGHBORS(a, b) (a)->bTooManyNeighbors = b
284 #define GET_PORT_TOOMANYNEIGHBORS(a) (a)->bTooManyNeighbors
286 #define SET_PORT_SOMETHINGCHANGEREMOTE(a, b) (a)->bSomethingChangeRemote = b
287 #define GET_PORT_SOMETHINGCHANGEREMOTE(a) (a)->bSomethingChangeRemote
289 #define SET_PORT_NEWTIMEPARAM(a,b) (a)->bNewTimeParameters = b
290 #define GET_PORT_NETTIMEPARAM(a) (a)->bNewTimeParameters
293 #define GET_TX_SOMETHINGCHANGE(a) (a)->stLldpTx.bySomethingChangeLocal
294 #define SET_TX_SOMETHINGCHANGE(a, b) (a)->stLldpTx.bySomethingChangeLocal = b
296 #define CLEAR_FRAMEOUTTOTAL(a) (a)->stLldpTx.stLldpTxStats.dwStatsFrameOutTotal = 0
297 #define INC_FRAMEOUTTOTAL(a) (a)->stLldpTx.stLldpTxStats.dwStatsFrameOutTotal++
300 #define GET_TX_DELAYWHILE(a) (a)->stLldpTx.stLLDPTXTimers.wTxDelayWhile
301 #define SET_TX_DELAYWHILE(a, b) (a)->stLldpTx.stLLDPTXTimers.wTxDelayWhile = b
303 #define GET_TX_TTR(a) (a)->stLldpTx.stLLDPTXTimers.wTxTTR
304 #define SET_TX_TTR(a, b) (a)->stLldpTx.stLLDPTXTimers.wTxTTR = b
306 #define GET_TX_SHUTDOWNWHILE(a) (a)->stLldpTx.stLLDPTXTimers.wTxShutdownWhile
307 #define SET_TX_SHUTDOWNWHILE(a, b) (a)->stLldpTx.stLLDPTXTimers.wTxShutdownWhile = b
309 #define GET_TX_HOLD(a) (a)->lpstLLDPConfig->wmsgTxHold
311 #define GET_TX_INTERVAL(a) (a)->lpstLLDPConfig->wmsgTxInterval
313 #define GET_TX_REINITDELAY(a) (a)->lpstLLDPConfig->wreinitDelay
315 #define GET_TX_DELAY(a) (a)->lpstLLDPConfig->wtxDelay
317 #define GET_PORT_MAC(a) (a)->lpstLLDPPortConfig->byPortMAC
318 #define GET_PORTID(a) (a)->lpstLLDPPortConfig->byPortId
319 #define GET_PORTID_SUBTYPE(a) (a)->lpstLLDPPortConfig->byPortSubType
320 #define GET_PORT_NUMBER(a) (a)->lpstLLDPPortConfig->byPortNumber
322 #define GET_WRITE_HANDLE(a) (a)->lpstLLDPPortConfig->lpvWriteHandle
323 #define SET_WRITE_HANDLE(a, b) (a)->lpstLLDPPortConfig->lpvWriteHandle = b
325 #ifdef LLDP_STD_DESC_SUPPORT
326 #define GET_PORT_DESC(a) (a)->lpstLLDPPortConfig->sPortDesc
329 #define GET_PORT_TX_ENABLED(a) (a)->lpstLLDPPortConfig->byLLDP_TxEnabled
332 #ifdef LLDP_SUPPORT_PN
334 #define GET_PN_TX_ENABLE(a) (a)->lpstLLDPPNlocal->byPNTxEnabled
335 #define SET_PN_TX_ENABLE(a, b) (a)->lpstLLDPPNlocal->byPNTxEnabled = b
339 #define GET_MRP_DOMAINUUID(a) (a)->lpstLLDPPNlocal->UUID_MRPDomain
342 #define GET_MRP_PORTSTATUS(a) (a)->lpstLLDPPNlocal->wMRRT_PortStatus
343 #define SET_MRP_PORTSTATUS(a, b) (a)->lpstLLDPPNlocal->wMRRT_PortStatus = b
347 #define GET_PN_CHASSISMAC(a) (a)->lpstLLDPPNlocal->sPNIOChassisMAC
349 #define GET_PN_PORTRT2(a) (a)->lpstLLDPPNlocal->wPNPortStatusRt2
350 #define SET_PN_PORTRT2(a,b) (a)->lpstLLDPPNlocal->wPNPortStatusRt2 = b
352 #define GET_PN_PORTRT3(a) (a)->lpstLLDPPNlocal->wPNPortStatusRt3
353 #define SET_PN_PORTRT3(a,b) (a)->lpstLLDPPNlocal->wPNPortStatusRt3 = b
356 #ifdef LLDP_SUPPORT_8023
358 #define GET_8023_AUTONEGSUPPORTED(a) (a)->lpstLLDP8023->b8023AutoNegSupported
359 #define SET_8023_AUTONEGSUPPORTED(a,b) (a)->lpstLLDP8023->b8023AutoNegSupported = b
361 #define GET_8023_AUTONEGENABLED(a) (a)->lpstLLDP8023->b8023AutoNegEnabled
362 #define SET_8023_AUTONEGENABLED(a,b) (a)->lpstLLDP8023->b8023AutoNegEnabled = b
364 #define GET_8023_AUTONEGADVERTIZED(a) (a)->lpstLLDP8023->w8023AutoNegAdvertisedCap
365 #define SET_8023_AUTONEGADVERTIZED(a, b) (a)->lpstLLDP8023->w8023AutoNegAdvertisedCap = b
367 #define GET_8023_OPERATIONMAU(a) (a)->lpstLLDP8023->w8023OperationMauType
368 #define SET_8023_OPERATIONMAU(a,b) (a)->lpstLLDP8023->w8023OperationMauType = b
370 #define GET_8023_TX_ENABLED(a) (a)->lpstLLDP8023->by8023TxEnabled
371 #define SET_8023_TX_ENABLED(a, b) (a)->lpstLLDP8023->by8023TxEnabled = b
375 APP_WORD InitialiseLocalMIB(APP_LPBYTE lpbyMacAdd, APP_LPVOID lpvWriteHandle, APP_LPWORD lpwStatus);
376 APP_WORD CleanLocalMIB(APP_LPWORD lpwStatus);
379 APP_WORD UpdateLocalPort(APP_BYTE byPortNumber, APP_BYTE byAdminStatus, APP_BOOL bLLDPPortEnabled, APP_LPWORD lpwStatus);
385 APP_WORD SetLocalPort(
LPST_LLDP_PORT lpstPort, APP_BYTE byIndex, APP_LPWORD lpwStatus);
393 APP_VOID SetLocMgtAddr(APP_BYTE byIndex, APP_BYTE byMgtAddrSubType, APP_DWORD dwMgtAddr, APP_BYTE byMgtAddrItfSubType, APP_DWORD dwMgtAddrItfNumber, APP_BYTE byMgtAddrOidLength, APP_LPBYTE sOID) ;
394 APP_WORD GetLocMgtAddr(APP_BYTE byIndex, APP_LPBYTE lpbyMgtAddrSubType, APP_LPDWORD lpdwMgtAddr, APP_LPBYTE lpbyMgtAddrItfSubType, APP_LPDWORD lpdwMgtAddrItfNumber, APP_LPBYTE lpbyMgtAddrOidLength, APP_LPBYTE sOID);
396 APP_WORD GetPortRef(APP_BYTE byPortIndex,
LPST_LLDP_PORT *lpstPort);
397 APP_VOID SetAllPortSomethingChanged();
398 APP_VOID SetPortSomethingChanged(APP_BYTE byPortIndex);
399 APP_VOID SetALLPortNewTimeParameters();
403 #ifdef LLDP_STD_DESC_SUPPORT
404 APP_WORD SetPortDescription(APP_BYTE byPortIndex, APP_LPBYTE byPortDesc);
405 APP_WORD GetPortDescription(APP_BYTE byPortIndex, APP_LPBYTE byPortDesc);
406 APP_WORD SetSystemDescription(APP_LPBYTE bySysName, APP_LPBYTE bySysDesc, APP_WORD wSysCap, APP_WORD wSysCapEnabled);
407 APP_WORD GetSystemDescription(APP_LPBYTE bySysName, APP_LPBYTE bySysDesc, APP_LPWORD lpwSysCap);
413 APP_VOID CreateTTLTLV(
LPST_LLDP_PORT lpPort, APP_BOOL bUseNullTTL);
415 APP_VOID CreateMgtAddrTLV(
LPST_LLDP_PORT lpPort, APP_BYTE byMgtAddrIndex);
421 #ifdef LLDP_STD_DESC_SUPPORT