versadac  1
versadac - Scalable Recorder Firmware
remotmib.h
1 /*---------------------------------------------------------------------------*/
2 /* Copyright (C) 2009 Woodhead Software & Electonics. All rights reserved. */
3 /*---------------------------------------------------------------------------*/
4 /* This program is protected by international copyright. */
5 /* */
6 /* The use of this software including but not limited to its Source Code */
7 /* is subject to restrictions as agreed in the license agreement between */
8 /* you and Woodhead. */
9 /* Copying or distribution is not allowed unless expressly permitted */
10 /* according to your license agreement with Woodhead. */
11 /*---------------------------------------------------------------------------*/
12 /* */
13 /* Project : STACK PROFINET Controller */
14 /* Component : */
15 /* $Workfile:: remotmib.h $*/
16 /* $Revision:: 2 $*/
17 /* $Date:: 27/04/10 11:27 $*/
18 /* */
19 /*---------------------------------------------------------------------------*/
20 /* */
21 /* D e s c r i p t i o n : */
22 /* */
23 /* LLDP Remote mib */
24 /*---------------------------------------------------------------------------*/
25 #ifndef _REMOTMIB_H
26 #define _REMOTMIB_H
27 
28 #ifdef LLDP_RECEIVER
29 
30 #define MAX_TLV_PN_INFO_LEN 18 /* Longuest PN tlv is MRP port status : 18 bytes */
31 #define MAX_TLV_8023_INFO_LEN 18 /* Longuest 8023 tlv is MacPhyconf status : bytes */
32 
33 /* Remote Mib definition */
34 #define MAX_TLV_INFO_LEN 512
35 
36 typedef struct _REMOTE_ORG_8023_TLV{
37  APP_BYTE byRemSystemIndex;
38  APP_BYTE by8023TlvSubType;
39  APP_BYTE s8023TlvInfo[MAX_TLV_8023_INFO_LEN];
40 
41  APP_BOOL bUsedNotUsed;
42 }ST_REMOTE_ORG_8023_TLV, APP_FAR *LPST_REMOTE_ORG_8023_TLV;
43 
44 
45 
46 typedef struct _REMOTE_ORG_PN_TLV{
47  APP_BYTE byRemSystemIndex;
48  APP_BYTE byPNTlvSubType;
49  APP_BYTE sPNTlvInfo[MAX_TLV_PN_INFO_LEN];
50 
51  APP_BOOL bUsedNotUsed;
52 }ST_REMOTE_ORG_PN_TLV, APP_FAR *LPST_REMOTE_ORG_PN_TLV;
53 
54 typedef struct _REMOTE_UNKNOWN_TLV{
55  APP_BYTE byRemSystemIndex;
56  APP_BYTE byUnknownTlvType;
57  APP_WORD wUnknownTlvLength;
58  APP_BYTE sUnknownTlvInfo[MAX_TLV_INFO_LEN];
59  APP_BOOL bUsedNotUsed;
60 
61 }ST_REMOTE_UNKNOWN_TLV, APP_FAR * LPST_REMOTE_UNKNOWN_TLV;
62 
63 
64 typedef struct _REMOTE_ORG_UNKNOWN_TLV{
65  APP_BYTE byRemSystemIndex;
66  APP_BYTE byUnknownTlvType;
67  APP_WORD wUnknownTlvLength;
68  APP_BYTE sUnknownTlvInfo[MAX_TLV_INFO_LEN];
69  APP_BOOL bUsedNotUsed;
70  APP_BYTE byOrganization;
71 }ST_REMOTE_ORG_UNKNOWN_TLV, APP_FAR * LPST_REMOTE_ORG_UNKNOWN_TLV;
72 
73 
74 typedef struct _REMOTE_SYS_DATA{
75  APP_BYTE byRemIndex;
76  APP_BYTE byRemLocalPortNum;
77  APP_BYTE byRemChassisIdSubType;
78  APP_BYTE sRemChassisID[LLDP_CHASSIS_ID_LEN_MAX];
79  APP_BYTE byChassisIDLen;
80  APP_BYTE byRemPortIdSubType;
81  APP_BYTE sRemPortId[LLDP_PORT_ID_LEN_MAX];
82  APP_BYTE byPortIdLen;
83 
84  ST_LLDP_REMOT_SYSTEM_MGT_ADDR StRemMgtAddr[MAX_LOC_REM_MGT_ADDR];
85  APP_BYTE byNbMgtAddr; /* ?? */
86 
87  ST_REMOTE_UNKNOWN_TLV RemSysUnknownTlv[MAX_UNKNOWN_TLV_PER_LLDPDU];
88  ST_REMOTE_ORG_UNKNOWN_TLV RemSysOrgUnknownTlv[MAX_UNKNOWN_TLV_PER_LLDPDU];
89 
90 #ifdef LLDP_SUPPORT_PN
91  ST_REMOTE_ORG_PN_TLV RemSysPnTlv[MAX_PN_TLV_PER_LLDPDU];
92 #endif
93 
94 #ifdef LLDP_SUPPORT_8023
95  ST_REMOTE_ORG_8023_TLV RemSys8023Tlv[MAX_8023_TLV_PER_LLDPDU];
96 #endif
97 
98 #ifdef LLDP_STD_DESC_SUPPORT
99  APP_BYTE sPortDesc[LLDP_PORT_DESC_LEN_MAX];
100  APP_BYTE sRemSysName[LLDP_SYS_NAME_LEN_MAX];
101  APP_BYTE sRemSysDesc[LLDP_SYS_DESC_LEN_MAX];
102  APP_WORD wRemSysCap;
103  APP_WORD wRemSysEnCap;
104 #endif
105  APP_BOOL bUsedNotUsed;
106 
107  APP_DWORD dwTimeMarkLastChange; /* Last change of this remote data sys*/
108 
109 }ST_REMOTE_SYS_DATA, APP_FAR * LPST_REMOTE_SYS_DATA;
110 
111 
112 
113 typedef struct _MSAP {
114 
115  /* Remote system Index */
116  APP_BYTE byRemIndex;
117 
118  /* 802.1 AB .1.9 MSAP length is ChassisID max len & PortID max len */
119  APP_BYTE sMSAPID[LLDP_CHASSIS_ID_LEN_MAX+LLDP_PORT_DESC_LEN_MAX];
120 
121  APP_WORD wRxInfoTTL;
122 
123  APP_BOOL bMsapUsed;
124 
125  APP_BYTE byLocalPort;
126 
127  LPST_REMOTE_SYS_DATA lpsrRemoteSysData;
128 
129 }ST_MSAP, APP_FAR * LPST_MSAP;
130 
131 #define GET_MSAP_USED(a) a->bMsapUsed
132 #define SET_MSAP_USED(a, b) a->bMsapUsed = b
133 
134 #define GET_MSAP_LOCAL_PORT(a) a->byLocalPort
135 #define GET_MSAP_REM_SYS_DATA(a) a->lpsrRemoteSysData
136 
137 #define GET_MSAP_RXINFO_TTL(a) a->wRxInfoTTL
138 #define SET_MSAP_RXINFO_TTL(a, b) a->wRxInfoTTL = b
139 
140 #define GET_SYS_DATA_USED(a) a->lpsrRemoteSysData->bUsedNotUsed
141 #define SET_SYS_DATA_USED(a,b) a->lpsrRemoteSysData->bUsedNotUsed = b
142 
143 #define GET_SYS_DATA_REMINDEX(a) a->byRemIndex
144 #define SET_SYS_DATA_REMINDEX(a,b) a->byRemIndex = b
145 
146 #define GET_SYS_DATA_REMLOCALPORT(a) a->lpsrRemoteSysData->byRemLocalPortNum
147 #define SET_SYS_DATA_REMLOCALPORT(a,b) a->lpsrRemoteSysData->byRemLocalPortNum = b
148 
149 #define GET_SYS_DATA_REMCHASSISIDSUBTYPE(a) a->lpsrRemoteSysData->byRemChassisIdSubType
150 #define SET_SYS_DATA_REMCHASSISIDSUBTYPE(a,b) a->lpsrRemoteSysData->byRemChassisIdSubType = b
151 
152 #define GET_SYS_DATA_REMPORTIDSUBTYPE(a) a->lpsrRemoteSysData->byRemPortIdSubType
153 #define SET_SYS_DATA_REMPORTIDSUBTYPE(a,b) a->lpsrRemoteSysData->byRemPortIdSubType = b
154 
155 #define SET_SYS_DATA_TIME_MARK(a, b) a->lpsrRemoteSysData->dwTimeMarkLastChange = b
156 #define GET_SYS_DATA_TIME_MARK(a) a->lpsrRemoteSysData->dwTimeMarkLastChange
157 
158 #define GET_SYS_DATA_REMCHASSISID(a) a->lpsrRemoteSysData->sRemChassisID
159 #define SET_SYS_DATA_REMCHASSISID(a, b) a->lpsrRemoteSysData->sRemChassisID = b
160 #define GET_SYS_DATA_REMCHASSISIDLEN(a) a->lpsrRemoteSysData->byChassisIDLen
161 #define SET_SYS_DATA_REMCHASSISIDLEN(a, b) a->lpsrRemoteSysData->byChassisIDLen = b
162 
163 #define GET_SYS_DATA_REMPORTID(a) a->lpsrRemoteSysData->sRemPortId
164 #define SET_SYS_DATA_REMPORTID(a,b) a->lpsrRemoteSysData->sRemPortId = b
165 #define GET_SYS_DATA_REMPORTIDLEN(a) a->lpsrRemoteSysData->byPortIdLen
166 #define SET_SYS_DATA_REMPORTIDLEN(a,b) a->lpsrRemoteSysData->byPortIdLen = b
167 
168 #define GET_SYS_DATA_REMPORTDESC(a) a->lpsrRemoteSysData->sPortDesc
169 #define GET_SYS_DATA_REMSYSNAME(a) a->lpsrRemoteSysData->sRemSysName
170 #define GET_SYS_DATA_REMSYSDESC(a) a->lpsrRemoteSysData->sRemSysDesc
171 
172 #define GET_SYS_DATA_REMSYSCAP(a) a->lpsrRemoteSysData->wRemSysCap
173 #define SET_SYS_DATA_REMSYSCAP(a, b) a->lpsrRemoteSysData->wRemSysCap = b
174 
175 #define GET_SYS_DATA_REMSYSENCAP(a) a->lpsrRemoteSysData->wRemSysEnCap
176 #define SET_SYS_DATA_REMSYSENCAP(a, b) a->lpsrRemoteSysData->wRemSysEnCap = b
177 
178 /* Remote Management address */
179 #define GET_SYS_DATA_REMADDRMGT_SUBTYPE(a) a->lpsrRemoteSysData->StRemMgtAddr[0].byMgtAddrSubType
180 #define SET_SYS_DATA_REMADDRMGT_SUBTYPE(a, b) a->lpsrRemoteSysData->StRemMgtAddr[0].byMgtAddrSubType = b
181 
182 #define GET_SYS_DATA_REMADDRMGT_SUBTYPE_LEN(a) a->lpsrRemoteSysData->StRemMgtAddr[0].byMgtAddrSubTypeLen
183 #define SET_SYS_DATA_REMADDRMGT_SUBTYPE_LEN(a, b) a->lpsrRemoteSysData->StRemMgtAddr[0].byMgtAddrSubTypeLen = b
184 
185 #define GET_SYS_DATA_REMADDRMGT_ADDR(a) (a)->lpsrRemoteSysData->StRemMgtAddr[0].byMgtAddr
186 #define SET_SYS_DATA_REMADDRMGT_ADDR(a, b) OS_MEMCOPY( ((a)->lpsrRemoteSysData->StRemMgtAddr[0].byMgtAddr), b, TLV_MANAGEMENT_ADDR_LEN)
187 
188 #define GET_SYS_DATA_REMADDRMGT_IFSUBTYPE(a) a->lpsrRemoteSysData->StRemMgtAddr[0].byMgtAddrItfSubType
189 #define SET_SYS_DATA_REMADDRMGT_IFSUBTYPE(a, b) a->lpsrRemoteSysData->StRemMgtAddr[0].byMgtAddrItfSubType = b
190 
191 
192 #define GET_SYS_DATA_REMADDRMGT_IFNUMBER(a) a->lpsrRemoteSysData->StRemMgtAddr[0].dwMgtAddrItfNumber
193 #define SET_SYS_DATA_REMADDRMGT_IFNUMBER(a, b) a->lpsrRemoteSysData->StRemMgtAddr[0].dwMgtAddrItfNumber = b
194 
195 
196 #define GET_SYS_DATA_REMADDRMGT_OIDLEN(a) a->lpsrRemoteSysData->StRemMgtAddr[0].byMgtAddrOidLength
197 #define SET_SYS_DATA_REMADDRMGT_OIDLEN(a, b) a->lpsrRemoteSysData->StRemMgtAddr[0].byMgtAddrOidLength = b
198 
199 #define GET_SYS_DATA_REMADDRMGT_OID(a) a->lpsrRemoteSysData->StRemMgtAddr[0].sMgtAddrOid
200 
201 #define GET_SYS_DATA_REMADDR_COUNT(a) a->lpsrRemoteSysData->byNbMgtAddr
202 #define SET_SYS_DATA_REMADDR_COUNT(a, b) a->lpsrRemoteSysData->byNbMgtAddr = b
203 
204 
205 #define GET_UNKOWN_TLV_REM_USED(a,b) a->lpsrRemoteSysData->RemSysUnknownTlv[b].bUsedNotUsed
206 #define SET_UNKOWN_TLV_REM_USED(a,b,c) a->lpsrRemoteSysData->RemSysUnknownTlv[b].bUsedNotUsed = c
207 
208 
209 #define GET_UNKOWN_TLV_REM_SYSINDEX(a,b) a->lpsrRemoteSysData->RemSysUnknownTlv[b].byRemSystemIndex
210 #define SET_UNKOWN_TLV_REM_SYSINDEX(a,b,c) a->lpsrRemoteSysData->RemSysUnknownTlv[b].byRemSystemIndex = c
211 
212 #define GET_UNKOWN_TLV_REM_TLVTYPE(a,b) a->lpsrRemoteSysData->RemSysUnknownTlv[b].byUnknownTlvType
213 #define SET_UNKOWN_TLV_REM_TLVTYPE(a,b,c) a->lpsrRemoteSysData->RemSysUnknownTlv[b].byUnknownTlvType = c
214 
215 #define GET_UNKOWN_TLV_REM_TLVLENGTH(a,b) a->lpsrRemoteSysData->RemSysUnknownTlv[b].wUnknownTlvLength
216 #define SET_UNKOWN_TLV_REM_TLVLENGTH(a,b,c) a->lpsrRemoteSysData->RemSysUnknownTlv[b].wUnknownTlvLength = c
217 
218 #define GET_UNKOWN_TLV_REM_TLVINFO(a,b) a->lpsrRemoteSysData->RemSysUnknownTlv[b].sUnknownTlvInfo
219 
220 /* Unknown Organization TLV */
221 #define SET_REM_ORG_UNKNOWN_TLV_USED(a, b, c) a->lpsrRemoteSysData->RemSysOrgUnknownTlv[b].bUsedNotUsed = c
222 #define GET_REM_ORG_UNKNOWN_TLV_USED(a, b) a->lpsrRemoteSysData->RemSysOrgUnknownTlv[b].bUsedNotUsed
223 
224 #define SET_REM_ORG_UNKNOWN_TLV_REM_INDEX(a, b, c) a->lpsrRemoteSysData->RemSysOrgUnknownTlv[b].byRemSystemIndex = c
225 #define GET_REM_ORG_UNKNOWN_TLV_REM_INDEX(a, b) a->lpsrRemoteSysData->RemSysOrgUnknownTlv[b].byRemSystemIndex
226 
227 #define SET_REM_ORG_UNKNOWN_TLV_ORGANIZATION(a ,b, c) a->lpsrRemoteSysData->RemSysOrgUnknownTlv[b].byOrganization = c
228 #define GET_REM_ORG_UNKNOWN_TLV_ORGANIZATION(a ,b) a->lpsrRemoteSysData->RemSysOrgUnknownTlv[b].byOrganization
229 
230 #define SET_REM_ORG_UNKNOWN_TLV_SUBTYPE(a, b, c) a->lpsrRemoteSysData->RemSysOrgUnknownTlv[b].byUnknownTlvType = c
231 #define GET_REM_ORG_UNKNOWN_TLV_SUBTYPE(a, b) a->lpsrRemoteSysData->RemSysOrgUnknownTlv[b].byUnknownTlvType
232 
233 #define SET_REM_ORG_UNKNOWN_TLV_LENGTH(a ,b, c) a->lpsrRemoteSysData->RemSysOrgUnknownTlv[b].wUnknownTlvLength = c
234 #define GET_REM_ORG_UNKNOWN_TLV_LENGTH(a ,b) a->lpsrRemoteSysData->RemSysOrgUnknownTlv[b].wUnknownTlvLength
235 
236 #define GET_REM_ORG_UNKNOWN_TLV_INFO(a ,b) a->lpsrRemoteSysData->RemSysOrgUnknownTlv[b].sUnknownTlvInfo
237 #define GET_REM_ORG_UNKNOWN_TLV(a, b) a->lpsrRemoteSysData->RemSysOrgUnknownTlv[b]
238 
239 
240 
241 /* PN TLV */
242 #define SET_REM_ORG_PN_TLV_USED(a, b, c) a->lpsrRemoteSysData->RemSysPnTlv[b].bUsedNotUsed = c
243 #define GET_REM_ORG_PN_TLV_USED(a, b) a->lpsrRemoteSysData->RemSysPnTlv[b].bUsedNotUsed
244 
245 #define SET_REM_ORG_PN_TLV_REM_INDEX(a, b, c) a->lpsrRemoteSysData->RemSysPnTlv[b].byRemSystemIndex = c
246 #define GET_REM_ORG_PN_TLV_REM_INDEX(a, b) a->lpsrRemoteSysData->RemSysPnTlv[b].byRemSystemIndex
247 
248 #define SET_REM_ORG_PN_TLV_SUBTYPE(a, b, c) a->lpsrRemoteSysData->RemSysPnTlv[b].byPNTlvSubType = c
249 #define GET_REM_ORG_PN_TLV_SUBTYPE(a, b) a->lpsrRemoteSysData->RemSysPnTlv[b].byPNTlvSubType
250 
251 #define GET_REM_ORG_PN_TLV_INFO(a ,b) a->lpsrRemoteSysData->RemSysPnTlv[b].sPNTlvInfo
252 
253 
254 
255 
256 
257 /* 8023 TLV */
258 #define SET_REM_ORG_8023_TLV_USED(a, b, c) a->lpsrRemoteSysData->RemSys8023Tlv[b].bUsedNotUsed = c
259 #define GET_REM_ORG_8023_TLV_USED(a, b) a->lpsrRemoteSysData->RemSys8023Tlv[b].bUsedNotUsed
260 
261 #define SET_REM_ORG_8023_TLV_REM_INDEX(a, b, c) a->lpsrRemoteSysData->RemSys8023Tlv[b].byRemSystemIndex = c
262 #define GET_REM_ORG_8023_TLV_REM_INDEX(a, b) a->lpsrRemoteSysData->RemSys8023Tlv[b].byRemSystemIndex
263 
264 #define SET_REM_ORG_8023_TLV_SUBTYPE(a, b, c) a->lpsrRemoteSysData->RemSys8023Tlv[b].by8023TlvSubType = c
265 #define GET_REM_ORG_8023_TLV_SUBTYPE(a, b) a->lpsrRemoteSysData->RemSys8023Tlv[b].by8023TlvSubType
266 
267 #define GET_REM_ORG_8023_TLV_INFO(a ,b) a->lpsrRemoteSysData->RemSys8023Tlv[b].s8023TlvInfo
268 
269 
270 #define LLDP_TABLE_FULL 3
271 
272 
273 APP_WORD CheckDiffRemSys(LPST_MSAP lpstMsapId, LPST_LLDP_PORT lpPort);
274 
275 APP_WORD IsMsapPresent(APP_LPBYTE sMSAPID, APP_WORD wMsapLen, APP_BYTE byLocalPortIndex, LPST_MSAP *lpstMsapid);
276 APP_WORD CreateMsap(APP_LPBYTE sMSAPID, APP_WORD wMsapLen, APP_WORD wTTL, APP_BYTE byLocalPortIndex, LPST_MSAP *lpstMsapid);
277 
278 APP_WORD CheckReceivedTlvValues(LPST_LLDP_PORT lpPort, LPST_LLDP_TLV lpstLldpTlv, LPST_MSAP lpstMsapId);
279 APP_WORD IsRecognizedTlvType(LPST_LLDP_TLV lpstLldpTlv);
280 APP_VOID DecMsapTTL();
281 APP_VOID SearchRxinfoTTLNULL(APP_BYTE byLocalPortIndex, LPST_MSAP *lpstMsapid);
282 
283 APP_WORD InitializeTLVValueChecker();
284 APP_WORD Check_End_Of_LLDPDU_TLV(LPST_LLDP_PORT lpPort, LPST_LLDP_TLV lpstLldpTlv, LPST_MSAP lpstMsapId);
285 APP_WORD Check_Chassis_Id_TLV(LPST_LLDP_PORT lpPort, LPST_LLDP_TLV lpstLldpTlv, LPST_MSAP lpstMsapId);
286 APP_WORD Check_Port_Id_TLV(LPST_LLDP_PORT lpPort, LPST_LLDP_TLV lpstLldpTlv, LPST_MSAP lpstMsapId);
287 APP_WORD Check_Ttl_TLV(LPST_LLDP_PORT lpPort, LPST_LLDP_TLV lpstLldpTlv, LPST_MSAP lpstMsapId);
288 APP_WORD Check_Port_Description_TLV(LPST_LLDP_PORT lpPort, LPST_LLDP_TLV lpstLldpTlv, LPST_MSAP lpstMsapId);
289 APP_WORD Check_System_Name_TLV(LPST_LLDP_PORT lpPort, LPST_LLDP_TLV lpstLldpTlv, LPST_MSAP lpstMsapId);
290 APP_WORD Check_System_Description_TLV(LPST_LLDP_PORT lpPort, LPST_LLDP_TLV lpstLldpTlv, LPST_MSAP lpstMsapId);
291 APP_WORD Check_System_Capability_TLV(LPST_LLDP_PORT lpPort, LPST_LLDP_TLV lpstLldpTlv, LPST_MSAP lpstMsapId);
292 APP_WORD Check_Mgmt_Addr_TLV(LPST_LLDP_PORT lpPort, LPST_LLDP_TLV lpstLldpTlv, LPST_MSAP lpstMsapId);
293 APP_WORD Check_Organization_TLV(LPST_LLDP_PORT lpPort, LPST_LLDP_TLV lpstLldpTlv, LPST_MSAP lpstMsapId);
294 APP_WORD CheckBasicTLv(LPST_LLDP_PORT lpPort, LPST_LLDP_TLV lpstLldpTlv, LPST_MSAP lpstMsapId);
295 APP_VOID ClearRemSysData(LPST_MSAP lpstMsapId);
296 APP_WORD DeleteMsap(LPST_MSAP lpstMsapid);
297 APP_WORD WriteOrgUnknownTlv(LPST_LLDP_TLV lpstLldpTlv, LPST_MSAP lpstMsapId, APP_BYTE byOrgTlv);
298 
299 APP_WORD CreateOrgUnkTlv(LPST_LLDP_TLV lpstLldpTlv, LPST_MSAP lpstMsapId, APP_BYTE byOrgTlv, APP_LPBYTE lpbyRemOrgUnknownIndex);
300 APP_WORD CheckPnTLV(LPST_LLDP_PORT lpPort, LPST_LLDP_TLV lpstLldpTlv, LPST_MSAP lpstMsapId);;
301 APP_WORD Check8023TLV(LPST_LLDP_PORT lpPort, LPST_LLDP_TLV lpstLldpTlv, LPST_MSAP lpstMsapId);
302 APP_WORD GetUnknowTlvIndex(LPST_MSAP lpStMsapRemSys, APP_LPBYTE lpbyNbUnkTlv, APP_LPBYTE lpbyArrayUnkTlvIndex);
303 APP_WORD GetUnknowOrgTlvIndex(LPST_MSAP lpStMsapRemSys, APP_LPBYTE lpbyNbRemoteOrgUnkTlv, APP_LPBYTE lpbyRemoteOrgUnkTlvIndex);
304 
305 #endif
306 #endif /* END OF HEADER FILE */
Definition: lmib.h:164
Definition: lmib.h:118