2b948281f54f9de063a3520b1c2eca73fec85b27
[cascardo/ovs.git] / lib / lldp / lldp-tlv.h
1 /* -*- mode: c; c-file-style: "openbsd" -*- */
2 /*
3  * Copyright (c) 2012 Vincent Bernat <bernat@luffy.cx>
4  *
5  * Permission to use, copy, modify, and/or distribute this software for any
6  * purpose with or without fee is hereby granted, provided that the above
7  * copyright notice and this permission notice appear in all copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16  */
17
18 #ifndef _LLDP_TLV_H
19 #define _LLDP_TLV_H
20
21 #define LLDP_MULTICAST_ADDR    {        \
22     0x01, 0x80, 0xc2, 0x00, 0x00, 0x0e  \
23 }
24
25 #define LLDP_TLV_END            0
26 #define LLDP_TLV_CHASSIS_ID     1
27 #define LLDP_TLV_PORT_ID        2
28 #define LLDP_TLV_TTL            3
29 #define LLDP_TLV_PORT_DESCR     4
30 #define LLDP_TLV_SYSTEM_NAME    5
31 #define LLDP_TLV_SYSTEM_DESCR   6
32 #define LLDP_TLV_SYSTEM_CAP     7
33 #define LLDP_TLV_MGMT_ADDR      8
34 #define LLDP_TLV_ORG            127
35
36 #define LLDP_TLV_ORG_DOT1       {0x00, 0x80, 0xc2}
37 #define LLDP_TLV_ORG_DOT3       {0x00, 0x12, 0x0f}
38 #define LLDP_TLV_ORG_MED        {0x00, 0x12, 0xbb}
39 #define LLDP_TLV_ORG_AVAYA      {0x00, 0x04, 0x0D}
40 #define LLDP_TLV_ORG_DCBX       {0x00, 0x1b, 0x21}
41
42 #define LLDP_TLV_DOT1_PVID      1
43 #define LLDP_TLV_DOT1_PPVID     2
44 #define LLDP_TLV_DOT1_VLANNAME  3
45 #define LLDP_TLV_DOT1_PI        4
46
47 #define LLDP_TLV_DOT3_MAC       1
48 #define LLDP_TLV_DOT3_POWER     2
49 #define LLDP_TLV_DOT3_LA        3
50 #define LLDP_TLV_DOT3_MFS       4
51
52 #define LLDP_TLV_MED_CAP        1
53 #define LLDP_TLV_MED_POLICY     2
54 #define LLDP_TLV_MED_LOCATION   3
55 #define LLDP_TLV_MED_MDI        4
56 #define LLDP_TLV_MED_IV_HW      5
57 #define LLDP_TLV_MED_IV_FW      6
58 #define LLDP_TLV_MED_IV_SW      7
59 #define LLDP_TLV_MED_IV_SN      8
60 #define LLDP_TLV_MED_IV_MANUF   9
61 #define LLDP_TLV_MED_IV_MODEL   10
62 #define LLDP_TLV_MED_IV_ASSET   11
63
64 #define LLDP_TLV_AA_ELEMENT_SUBTYPE           0x0b
65 #define LLDP_TLV_AA_ISID_VLAN_ASGNS_SUBTYPE   0x0c
66 #define LLDP_TLV_AA_ISID_VLAN_DIGEST_LENGTH   32
67
68 #define LLDP_TLV_AA_ELEM_TYPE_UNKNOWN                            1
69 #define LLDP_TLV_AA_ELEM_TYPE_SERVER                             2
70 #define LLDP_TLV_AA_ELEM_TYPE_PROXY                              3
71 #define LLDP_TLV_AA_ELEM_TYPE_SERV_NO_AUTH                       4
72 #define LLDP_TLV_AA_ELEM_TYPE_PROXY_NO_AUTH                      5
73 #define LLDP_TLV_AA_ELEM_TYPE_CLIENT_WIRELESS_ACCESS_POINT_TYPE1 6
74 #define LLDP_TLV_AA_ELEM_TYPE_CLIENT_WIRELESS_ACCESS_POINT_TYPE2 7
75 #define LLDP_TLV_AA_ELEM_TYPE_CLIENT_SWITCH                      8
76 #define LLDP_TLV_AA_ELEM_TYPE_CLIENT_ROUTER                      9
77 #define LLDP_TLV_AA_ELEM_TYPE_CLIENT_IP_PHONE                    10
78 #define LLDP_TLV_AA_ELEM_TYPE_CLIENT_IP_CAMERA                   11
79 #define LLDP_TLV_AA_ELEM_TYPE_CLIENT_IP_VIDEO                    12
80 #define LLDP_TLV_AA_ELEM_TYPE_CLIENT_SECURITY_DEVICE             13
81 #define LLDP_TLV_AA_ELEM_TYPE_CLIENT_VIRTUAL_SWITCH              14
82 #define LLDP_TLV_AA_ELEM_TYPE_CLIENT_SERVER_ENDPOINT             15
83
84 #define LLDP_TLV_AA_ELEM_CONN_TYPE_SINGLE     0
85 #define LLDP_TLV_AA_ELEM_CONN_TYPE_MLT        1
86 #define LLDP_TLV_AA_ELEM_CONN_TYPE_SLT        2
87 #define LLDP_TLV_AA_ELEM_CONN_TYPE_SMLT       3
88
89 #endif