versadac  1
versadac - Scalable Recorder Firmware
tlv.h
1 /*---------------------------------------------------------------------------*/
2 /* Copyright (C) 2006 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 : LLDP */
15 /* $Workfile:: tlv.h $*/
16 /* $Revision:: 3 $*/
17 /* $Date:: 11/08/10 17:21 $*/
18 /* */
19 /*---------------------------------------------------------------------------*/
20 /* */
21 /* D e s c r i p t i o n : */
22 /* - LLDP TLV generator & checker */
23 /*---------------------------------------------------------------------------*/
24 #ifndef _TLV_H
25 #define _TLV_H
26 
27 
28 
29 
30 #ifdef LLDP_RECEIVER
31 
32 #define TLV_ORG_PN 1
33 #define TLV_ORG_8023 2
34 #define TLV_ORG_UNKNOWN 255
35 
36 typedef struct _ST_LLDP_TLV {
37 
38  APP_BYTE byType;
39  APP_WORD wLength;
40  APP_LPBYTE lpbyInfo;
41 
42 } ST_LLDP_TLV, APP_FAR * LPST_LLDP_TLV;
43 
44 #define DISCARD_TLV(a) OS_MEMSET(a, 0, sizeof(ST_LLDP_TLV))
45 
46 extern APP_WORD (*Validate_Tlv[128])(LPST_LLDP_TLV lpstTlv);
47 APP_WORD InitializeTLVFunctionValidators();
48 APP_WORD Validate_Length_Max_256(LPST_LLDP_TLV lpstTlv);
49 APP_WORD Validate_Length_Max_255(LPST_LLDP_TLV lpstTlv);
50 APP_WORD Validate_End_Of_LLDPDU_TLV(LPST_LLDP_TLV lpstTlv);
51 APP_WORD Validate_Chassis_Id_TLV(LPST_LLDP_TLV lpstTlv);
52 APP_WORD Validate_Port_Id_TLV(LPST_LLDP_TLV lpstTlv);
53 APP_WORD Validate_Ttl_TLV(LPST_LLDP_TLV lpstTlv);
54 APP_WORD Validate_Port_Description_TLV(LPST_LLDP_TLV lpstTlv);
55 APP_WORD Validate_System_Name_TLV(LPST_LLDP_TLV lpstTlv);
56 APP_WORD Validate_System_Description_TLV(LPST_LLDP_TLV lpstTlv);
57 APP_WORD Validate_System_Capability_TLV(LPST_LLDP_TLV lpstTlv);
58 APP_WORD Validate_Mgmt_Addr_TLV(LPST_LLDP_TLV lpstTlv);
59 APP_WORD Validate_Organization_TLV(LPST_LLDP_TLV lpstTlv);
60 
61 APP_WORD ReadChassisIDTLV(LPST_LLDP_TLV lpstTlv, APP_LPBYTE lpbyChassisIdSubType, APP_LPBYTE lpbyChassisId);
62 APP_WORD ReadPortIDTLV(LPST_LLDP_TLV lpstTlv, APP_LPBYTE lpbyPortIdSubType, APP_LPBYTE lpbyPortId);
63 APP_WORD ReadTTLTLV(LPST_LLDP_TLV lpstTlv, APP_LPWORD lpwRxTTL);
64 APP_WORD ReadPortDescriptionIDTLV(LPST_LLDP_TLV lpstTlv, APP_LPBYTE *lpbyPortDescription);
65 APP_WORD ReadSystemNameTLV(LPST_LLDP_TLV lpstTlv, APP_LPBYTE *lpbySystemName);
66 APP_WORD ReadSystemDescTLV(LPST_LLDP_TLV lpstTlv, APP_LPBYTE *lpbySystemDesc);
67 APP_WORD ReadSystemCapTLV(LPST_LLDP_TLV lpstTlv, APP_LPWORD *lpwSystemCap, APP_LPWORD *lpwSystemEnabledCap);
68 APP_WORD IsTlvOUI_PN_8023(LPST_LLDP_TLV lpstLldpTlv, APP_LPBYTE lpbyOrganizationOUI);
69 APP_WORD ReadAddrMgtTLV(LPST_LLDP_TLV lpstTlv, APP_LPBYTE lpbyMgtAddrSubTypeLen, APP_LPBYTE lpbyMgtAddrSubType, APP_LPBYTE lpbyMgtAddr, APP_LPBYTE lpbyMgtAddrItfSubType, APP_LPDWORD lpdwMgtAddrItfNumber, APP_LPBYTE lpbyMgtAddrOidLength, APP_LPBYTE *sMgtAddrOid);
70 #endif
71 
72 
73 #endif
74 
75