Blame src/lldp-const.h

Packit e9ba0d
/* -*- mode: c; c-file-style: "openbsd" -*- */
Packit e9ba0d
/*
Packit e9ba0d
 * Copyright (c) 2008 Vincent Bernat <bernat@luffy.cx>
Packit e9ba0d
 *
Packit e9ba0d
 * Permission to use, copy, modify, and/or distribute this software for any
Packit e9ba0d
 * purpose with or without fee is hereby granted, provided that the above
Packit e9ba0d
 * copyright notice and this permission notice appear in all copies.
Packit e9ba0d
 *
Packit e9ba0d
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
Packit e9ba0d
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
Packit e9ba0d
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
Packit e9ba0d
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
Packit e9ba0d
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
Packit e9ba0d
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
Packit e9ba0d
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Packit e9ba0d
 */
Packit e9ba0d
Packit e9ba0d
#ifndef _LLDP_H
Packit e9ba0d
#define _LLDP_H
Packit e9ba0d
Packit e9ba0d
/* Definitions prefixed by `LLDP_` are constants from LLDP
Packit e9ba0d
 * specifications. Definitions prefixed by `LLDPD_` are custom
Packit e9ba0d
 * constants that are useful in the context of lldpd and its clients.
Packit e9ba0d
 */
Packit e9ba0d
Packit e9ba0d
#define LLDP_TLV_ORG			127
Packit e9ba0d
#define LLDP_TLV_ORG_OUI_LEN		3
Packit e9ba0d
#define LLDP_TLV_ORG_OUI_INFO_MAXLEN	507
Packit e9ba0d
Packit e9ba0d
/* Chassis ID subtype */
Packit e9ba0d
#define LLDP_CHASSISID_SUBTYPE_CHASSIS	1
Packit e9ba0d
#define LLDP_CHASSISID_SUBTYPE_IFALIAS	2
Packit e9ba0d
#define LLDP_CHASSISID_SUBTYPE_PORT	3
Packit e9ba0d
#define LLDP_CHASSISID_SUBTYPE_LLADDR	4
Packit e9ba0d
#define LLDP_CHASSISID_SUBTYPE_ADDR	5
Packit e9ba0d
#define LLDP_CHASSISID_SUBTYPE_IFNAME	6
Packit e9ba0d
#define LLDP_CHASSISID_SUBTYPE_LOCAL	7
Packit e9ba0d
Packit e9ba0d
/* Port ID subtype */
Packit e9ba0d
#define LLDP_PORTID_SUBTYPE_UNKNOWN	0
Packit e9ba0d
#define LLDP_PORTID_SUBTYPE_IFALIAS	1
Packit e9ba0d
#define LLDP_PORTID_SUBTYPE_PORT	2
Packit e9ba0d
#define LLDP_PORTID_SUBTYPE_LLADDR	3
Packit e9ba0d
#define LLDP_PORTID_SUBTYPE_ADDR	4
Packit e9ba0d
#define LLDP_PORTID_SUBTYPE_IFNAME	5
Packit e9ba0d
#define LLDP_PORTID_SUBTYPE_AGENTCID	6
Packit e9ba0d
#define LLDP_PORTID_SUBTYPE_LOCAL	7
Packit e9ba0d
#define LLDP_PORTID_SUBTYPE_MAX		LLDP_PORTID_SUBTYPE_LOCAL
Packit e9ba0d
Packit e9ba0d
/* Operational MAU Type field. See: https://www.iana.org/assignments/ianamau-mib/ianamau-mib */
Packit e9ba0d
#define LLDP_DOT3_MAU_AUI		1
Packit e9ba0d
#define LLDP_DOT3_MAU_10BASE5		2
Packit e9ba0d
#define LLDP_DOT3_MAU_FOIRL		3
Packit e9ba0d
#define LLDP_DOT3_MAU_10BASE2		4
Packit e9ba0d
#define LLDP_DOT3_MAU_10BASET		5
Packit e9ba0d
#define LLDP_DOT3_MAU_10BASEFP		6
Packit e9ba0d
#define LLDP_DOT3_MAU_10BASEFB		7
Packit e9ba0d
#define LLDP_DOT3_MAU_10BASEFL		8
Packit e9ba0d
#define LLDP_DOT3_MAU_10BROAD36		9
Packit e9ba0d
#define LLDP_DOT3_MAU_10BASETHD		10
Packit e9ba0d
#define LLDP_DOT3_MAU_10BASETFD		11
Packit e9ba0d
#define LLDP_DOT3_MAU_10BASEFLHD	12
Packit e9ba0d
#define LLDP_DOT3_MAU_10BASEFLFD	13
Packit e9ba0d
#define LLDP_DOT3_MAU_10BASET4		14
Packit e9ba0d
#define LLDP_DOT3_MAU_100BASETXHD	15
Packit e9ba0d
#define LLDP_DOT3_MAU_100BASETXFD	16
Packit e9ba0d
#define LLDP_DOT3_MAU_100BASEFXHD	17
Packit e9ba0d
#define LLDP_DOT3_MAU_100BASEFXFD	18
Packit e9ba0d
#define LLDP_DOT3_MAU_100BASET2HD	19
Packit e9ba0d
#define LLDP_DOT3_MAU_100BASET2FD	20
Packit e9ba0d
#define LLDP_DOT3_MAU_1000BASEXHD	21
Packit e9ba0d
#define LLDP_DOT3_MAU_1000BASEXFD	22
Packit e9ba0d
#define LLDP_DOT3_MAU_1000BASELXHD	23
Packit e9ba0d
#define LLDP_DOT3_MAU_1000BASELXFD	24
Packit e9ba0d
#define LLDP_DOT3_MAU_1000BASESXHD	25
Packit e9ba0d
#define LLDP_DOT3_MAU_1000BASESXFD	26
Packit e9ba0d
#define LLDP_DOT3_MAU_1000BASECXHD	27
Packit e9ba0d
#define LLDP_DOT3_MAU_1000BASECXFD	28
Packit e9ba0d
#define LLDP_DOT3_MAU_1000BASETHD	29
Packit e9ba0d
#define LLDP_DOT3_MAU_1000BASETFD	30
Packit e9ba0d
#define LLDP_DOT3_MAU_10GIGBASEX	31
Packit e9ba0d
#define LLDP_DOT3_MAU_10GIGBASELX4	32
Packit e9ba0d
#define LLDP_DOT3_MAU_10GIGBASER	33
Packit e9ba0d
#define LLDP_DOT3_MAU_10GIGBASEER	34
Packit e9ba0d
#define LLDP_DOT3_MAU_10GIGBASELR	35
Packit e9ba0d
#define LLDP_DOT3_MAU_10GIGBASESR	36
Packit e9ba0d
#define LLDP_DOT3_MAU_10GIGBASEW	37
Packit e9ba0d
#define LLDP_DOT3_MAU_10GIGBASEEW	38
Packit e9ba0d
#define LLDP_DOT3_MAU_10GIGBASELW	39
Packit e9ba0d
#define LLDP_DOT3_MAU_10GIGBASESW	40
Packit e9ba0d
#define LLDP_DOT3_MAU_10GIGBASECX4	41
Packit e9ba0d
#define LLDP_DOT3_MAU_2BASETL		42
Packit e9ba0d
#define LLDP_DOT3_MAU_10PASSTS		43
Packit e9ba0d
#define LLDP_DOT3_MAU_100BASEBX10D	44
Packit e9ba0d
#define LLDP_DOT3_MAU_100BASEBX10U	45
Packit e9ba0d
#define LLDP_DOT3_MAU_100BASELX10	46
Packit e9ba0d
#define LLDP_DOT3_MAU_1000BASEBX10D	47
Packit e9ba0d
#define LLDP_DOT3_MAU_1000BASEBX10U	48
Packit e9ba0d
#define LLDP_DOT3_MAU_1000BASELX10	49
Packit e9ba0d
#define LLDP_DOT3_MAU_1000BASEPX10D	50
Packit e9ba0d
#define LLDP_DOT3_MAU_1000BASEPX10U	51
Packit e9ba0d
#define LLDP_DOT3_MAU_1000BASEPX20D	52
Packit e9ba0d
#define LLDP_DOT3_MAU_1000BASEPX20U	53
Packit e9ba0d
#define LLDP_DOT3_MAU_10GBASET		54
Packit e9ba0d
#define LLDP_DOT3_MAU_10GBASELRM	55
Packit e9ba0d
#define LLDP_DOT3_MAU_1000BASEKX	56
Packit e9ba0d
#define LLDP_DOT3_MAU_10GBASEKX4	57
Packit e9ba0d
#define LLDP_DOT3_MAU_10GBASEKR		58
Packit e9ba0d
#define LLDP_DOT3_MAU_10G1GBASEPRXD1	59
Packit e9ba0d
#define LLDP_DOT3_MAU_10G1GBASEPRXD2	60
Packit e9ba0d
#define LLDP_DOT3_MAU_10G1GBASEPRXD3	61
Packit e9ba0d
#define LLDP_DOT3_MAU_10G1GBASEPRXU1	62
Packit e9ba0d
#define LLDP_DOT3_MAU_10G1GBASEPRXU2	63
Packit e9ba0d
#define LLDP_DOT3_MAU_10G1GBASEPRXU3	64
Packit e9ba0d
#define LLDP_DOT3_MAU_10GBASEPRD1	65
Packit e9ba0d
#define LLDP_DOT3_MAU_10GBASEPRD2	66
Packit e9ba0d
#define LLDP_DOT3_MAU_10GBASEPRD3	67
Packit e9ba0d
#define LLDP_DOT3_MAU_10GBASEPRU1	68
Packit e9ba0d
#define LLDP_DOT3_MAU_10GBASEPRU3	69
Packit e9ba0d
#define LLDP_DOT3_MAU_40GBASEKR4	70
Packit e9ba0d
#define LLDP_DOT3_MAU_40GBASECR4	71
Packit e9ba0d
#define LLDP_DOT3_MAU_40GBASESR4	72
Packit e9ba0d
#define LLDP_DOT3_MAU_40GBASEFR		73
Packit e9ba0d
#define LLDP_DOT3_MAU_40GBASELR4	74
Packit e9ba0d
#define LLDP_DOT3_MAU_100GBASECR10	75
Packit e9ba0d
#define LLDP_DOT3_MAU_100GBASESR10	76
Packit e9ba0d
#define LLDP_DOT3_MAU_100GBASELR4	77
Packit e9ba0d
#define LLDP_DOT3_MAU_100GBASEER4	78
Packit e9ba0d
Packit e9ba0d
/* Dot3 Power Devicetype */
Packit e9ba0d
#define LLDP_DOT3_POWER_PSE	1
Packit e9ba0d
#define LLDP_DOT3_POWER_PD	2
Packit e9ba0d
Packit e9ba0d
/* Dot3 Power Pairs (RFC 3621) */
Packit e9ba0d
#define LLDP_DOT3_POWERPAIRS_SIGNAL	1
Packit e9ba0d
#define LLDP_DOT3_POWERPAIRS_SPARE	2
Packit e9ba0d
Packit e9ba0d
/* Dot3 Power type (for 802.3at) */
Packit e9ba0d
#define LLDP_DOT3_POWER_8023AT_OFF	0
Packit e9ba0d
#define LLDP_DOT3_POWER_8023AT_TYPE1	1
Packit e9ba0d
#define LLDP_DOT3_POWER_8023AT_TYPE2	2
Packit e9ba0d
Packit e9ba0d
/* Dot3 power source */
Packit e9ba0d
#define LLDP_DOT3_POWER_SOURCE_UNKNOWN	0
Packit e9ba0d
#define LLDP_DOT3_POWER_SOURCE_PRIMARY	1
Packit e9ba0d
#define LLDP_DOT3_POWER_SOURCE_PSE	1
Packit e9ba0d
#define LLDP_DOT3_POWER_SOURCE_BACKUP	2
Packit e9ba0d
#define LLDP_DOT3_POWER_SOURCE_LOCAL	2
Packit e9ba0d
#define LLDP_DOT3_POWER_SOURCE_BOTH	3
Packit e9ba0d
Packit e9ba0d
/* Dot3 power priority */
Packit e9ba0d
#define LLDP_DOT3_POWER_PRIO_UNKNOWN	0
Packit e9ba0d
#define LLDP_DOT3_POWER_PRIO_CRITICAL	1
Packit e9ba0d
#define LLDP_DOT3_POWER_PRIO_HIGH	2
Packit e9ba0d
#define LLDP_DOT3_POWER_PRIO_LOW	3
Packit e9ba0d
Packit e9ba0d
/* PMD Auto-Negotiation Advertised Capability field, from RFC 3636 (see
Packit e9ba0d
 * IANAifMauAutoNegCapBits). Unfortunately, we are limited to two bytes, so
Packit e9ba0d
 * higher speed capabilities will map to "other". */
Packit e9ba0d
#define LLDP_DOT3_LINK_AUTONEG_OTHER		0x8000
Packit e9ba0d
#define LLDP_DOT3_LINK_AUTONEG_10BASE_T		0x4000
Packit e9ba0d
#define LLDP_DOT3_LINK_AUTONEG_10BASET_FD	0x2000
Packit e9ba0d
#define LLDP_DOT3_LINK_AUTONEG_100BASE_T4	0x1000
Packit e9ba0d
#define LLDP_DOT3_LINK_AUTONEG_100BASE_TX	0x0800
Packit e9ba0d
#define LLDP_DOT3_LINK_AUTONEG_100BASE_TXFD	0x0400
Packit e9ba0d
#define LLDP_DOT3_LINK_AUTONEG_100BASE_T2	0x0200
Packit e9ba0d
#define LLDP_DOT3_LINK_AUTONEG_100BASE_T2FD	0x0100
Packit e9ba0d
#define LLDP_DOT3_LINK_AUTONEG_FDX_PAUSE	0x0080
Packit e9ba0d
#define LLDP_DOT3_LINK_AUTONEG_FDX_APAUSE	0x0040
Packit e9ba0d
#define LLDP_DOT3_LINK_AUTONEG_FDX_SPAUSE	0x0020
Packit e9ba0d
#define LLDP_DOT3_LINK_AUTONEG_FDX_BPAUSE	0x0010
Packit e9ba0d
#define LLDP_DOT3_LINK_AUTONEG_1000BASE_X	0x0008
Packit e9ba0d
#define LLDP_DOT3_LINK_AUTONEG_1000BASE_XFD	0x0004
Packit e9ba0d
#define LLDP_DOT3_LINK_AUTONEG_1000BASE_T	0x0002
Packit e9ba0d
#define LLDP_DOT3_LINK_AUTONEG_1000BASE_TFD	0x0001
Packit e9ba0d
Packit e9ba0d
/* Capabilities */
Packit e9ba0d
#define LLDP_CAP_OTHER		0x01
Packit e9ba0d
#define LLDP_CAP_REPEATER	0x02
Packit e9ba0d
#define LLDP_CAP_BRIDGE		0x04
Packit e9ba0d
#define LLDP_CAP_WLAN		0x08
Packit e9ba0d
#define LLDP_CAP_ROUTER		0x10
Packit e9ba0d
#define LLDP_CAP_TELEPHONE	0x20
Packit e9ba0d
#define LLDP_CAP_DOCSIS		0x40
Packit e9ba0d
#define LLDP_CAP_STATION	0x80
Packit e9ba0d
Packit e9ba0d
#define LLDP_PPVID_CAP_SUPPORTED	(1 << 1)
Packit e9ba0d
#define LLDP_PPVID_CAP_ENABLED		(1 << 2)
Packit e9ba0d
Packit e9ba0d
/* see http://www.iana.org/assignments/address-family-numbers */
Packit e9ba0d
#define LLDP_MGMT_ADDR_NONE	0
Packit e9ba0d
#define LLDP_MGMT_ADDR_IP4	1
Packit e9ba0d
#define LLDP_MGMT_ADDR_IP6	2
Packit e9ba0d
Packit e9ba0d
#define LLDP_MGMT_IFACE_UNKNOWN 1
Packit e9ba0d
#define LLDP_MGMT_IFACE_IFINDEX 2
Packit e9ba0d
#define LLDP_MGMT_IFACE_SYSPORT	3
Packit e9ba0d
Packit e9ba0d
#define LLDP_MED_CLASS_I	1
Packit e9ba0d
#define LLDP_MED_CLASS_II	2
Packit e9ba0d
#define LLDP_MED_CLASS_III	3
Packit e9ba0d
#define LLDP_MED_NETWORK_DEVICE	4
Packit e9ba0d
Packit e9ba0d
/* LLDP MED application ttpes */
Packit e9ba0d
#define LLDP_MED_APPTYPE_UNDEFINED		0
Packit e9ba0d
#define LLDP_MED_APPTYPE_VOICE			1
Packit e9ba0d
#define LLDP_MED_APPTYPE_VOICESIGNAL		2
Packit e9ba0d
#define LLDP_MED_APPTYPE_GUESTVOICE		3
Packit e9ba0d
#define LLDP_MED_APPTYPE_GUESTVOICESIGNAL	4
Packit e9ba0d
#define LLDP_MED_APPTYPE_SOFTPHONEVOICE		5
Packit e9ba0d
#define LLDP_MED_APPTYPE_VIDEOCONFERENCE	6
Packit e9ba0d
#define LLDP_MED_APPTYPE_VIDEOSTREAM		7
Packit e9ba0d
#define LLDP_MED_APPTYPE_VIDEOSIGNAL		8
Packit e9ba0d
#define LLDP_MED_APPTYPE_LAST			LLDP_MED_APPTYPE_VIDEOSIGNAL
Packit e9ba0d
Packit e9ba0d
/* LLDP MED location formats */
Packit e9ba0d
#define LLDP_MED_LOCFORMAT_COORD	1
Packit e9ba0d
#define LLDP_MED_LOCFORMAT_CIVIC	2
Packit e9ba0d
#define LLDP_MED_LOCFORMAT_ELIN		3
Packit e9ba0d
#define LLDP_MED_LOCFORMAT_LAST		LLDP_MED_LOCFORMAT_ELIN
Packit e9ba0d
Packit e9ba0d
#define LLDP_MED_LOCATION_GEOID_WGS84		1
Packit e9ba0d
#define LLDP_MED_LOCATION_GEOID_NAD83		2
Packit e9ba0d
#define LLDP_MED_LOCATION_GEOID_NAD83_MLLW	3
Packit e9ba0d
Packit e9ba0d
#define LLDP_MED_LOCATION_ALTITUDE_UNIT_METER	1
Packit e9ba0d
#define LLDP_MED_LOCATION_ALTITUDE_UNIT_FLOOR	2
Packit e9ba0d
Packit e9ba0d
/* LLDP MED power related constants */
Packit e9ba0d
#define LLDP_MED_POW_TYPE_PSE		1
Packit e9ba0d
#define LLDP_MED_POW_TYPE_PD		2
Packit e9ba0d
#define LLDP_MED_POW_TYPE_RESERVED	3
Packit e9ba0d
Packit e9ba0d
#define LLDP_MED_POW_SOURCE_UNKNOWN	1
Packit e9ba0d
#define LLDP_MED_POW_SOURCE_PRIMARY	2
Packit e9ba0d
#define LLDP_MED_POW_SOURCE_BACKUP	3
Packit e9ba0d
#define LLDP_MED_POW_SOURCE_RESERVED	4
Packit e9ba0d
#define LLDP_MED_POW_SOURCE_PSE		5
Packit e9ba0d
#define LLDP_MED_POW_SOURCE_LOCAL	6
Packit e9ba0d
#define LLDP_MED_POW_SOURCE_BOTH	7
Packit e9ba0d
Packit e9ba0d
#define LLDP_MED_POW_PRIO_UNKNOWN	0
Packit e9ba0d
#define LLDP_MED_POW_PRIO_CRITICAL	1
Packit e9ba0d
#define LLDP_MED_POW_PRIO_HIGH		2
Packit e9ba0d
#define LLDP_MED_POW_PRIO_LOW		3
Packit e9ba0d
Packit e9ba0d
/* LLDP MED capabilities */
Packit e9ba0d
#define LLDP_MED_CAP_CAP	0x01
Packit e9ba0d
#define LLDP_MED_CAP_POLICY	0x02
Packit e9ba0d
#define LLDP_MED_CAP_LOCATION	0x04
Packit e9ba0d
#define LLDP_MED_CAP_MDI_PSE	0x08
Packit e9ba0d
#define LLDP_MED_CAP_MDI_PD	0x10
Packit e9ba0d
#define LLDP_MED_CAP_IV		0x20
Packit e9ba0d
Packit e9ba0d
/* Protocol constants for multi-protocol lldpd */
Packit e9ba0d
#define LLDPD_MODE_LLDP		1
Packit e9ba0d
#define LLDPD_MODE_CDPV1	2
Packit e9ba0d
#define LLDPD_MODE_CDPV2	3
Packit e9ba0d
#define LLDPD_MODE_SONMP	4
Packit e9ba0d
#define LLDPD_MODE_EDP		5
Packit e9ba0d
#define LLDPD_MODE_FDP		6
Packit e9ba0d
#define LLDPD_MODE_MAX		LLDPD_MODE_FDP
Packit e9ba0d
Packit e9ba0d
Packit e9ba0d
/* Bond slave src mac type constants */
Packit e9ba0d
#define LLDP_BOND_SLAVE_SRC_MAC_TYPE_UNKNOWN	0
Packit e9ba0d
#define LLDP_BOND_SLAVE_SRC_MAC_TYPE_REAL	1
Packit e9ba0d
#define LLDP_BOND_SLAVE_SRC_MAC_TYPE_ZERO	2
Packit e9ba0d
#define LLDP_BOND_SLAVE_SRC_MAC_TYPE_FIXED	3
Packit e9ba0d
#define LLDP_BOND_SLAVE_SRC_MAC_TYPE_LOCALLY_ADMINISTERED 4
Packit e9ba0d
#define LLDP_BOND_SLAVE_SRC_MAC_TYPE_MAX LLDP_BOND_SLAVE_SRC_MAC_TYPE_LOCALLY_ADMINISTERED
Packit e9ba0d
Packit e9ba0d
/* Agent types */
Packit e9ba0d
#define LLDP_AGENT_TYPE_UNKNOWN			0
Packit e9ba0d
#define LLDP_AGENT_TYPE_NEAREST_BRIDGE		1
Packit e9ba0d
#define LLDP_AGENT_TYPE_NEAREST_NONTPMR_BRIDGE	2
Packit e9ba0d
#define LLDP_AGENT_TYPE_NEAREST_CUSTOMER_BRIDGE	3
Packit e9ba0d
#define LLDP_AGENT_TYPE_MAX			LLDP_AGENT_TYPE_NEAREST_CUSTOMER_BRIDGE
Packit e9ba0d
Packit e9ba0d
#endif /* _LLDP_H */