summaryrefslogtreecommitdiffstats
path: root/src/vnet/cdp/cdp_protocol.h
diff options
context:
space:
mode:
authorDave Barach <dave@barachs.net>2018-03-10 14:57:00 -0500
committerDave Barach <dave@barachs.net>2018-03-10 15:27:58 -0500
commitaaacfbc5b15b0653489ad2e80db48151a4375ece (patch)
treecbe4228c1e674116563229e52bc5e9d73229b5af /src/vnet/cdp/cdp_protocol.h
parentfde0929d9362eac5c416f658e1d2031d01a02337 (diff)
Move the vnet cdp protocol implementation to a plugin
Add a binary API and debug cli to enable/disable cdp. cdp is disabled by default. Change-Id: I307c7e38dfda38e36ff3325f65de7036c34d89b1 Signed-off-by: Dave Barach <dave@barachs.net>
Diffstat (limited to 'src/vnet/cdp/cdp_protocol.h')
-rw-r--r--src/vnet/cdp/cdp_protocol.h186
1 files changed, 0 insertions, 186 deletions
diff --git a/src/vnet/cdp/cdp_protocol.h b/src/vnet/cdp/cdp_protocol.h
deleted file mode 100644
index dc6c66d52c3..00000000000
--- a/src/vnet/cdp/cdp_protocol.h
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * Copyright (c) 2011-2016 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-#ifndef __included_cdp_protocol_h__
-#define __included_cdp_protocol_h__
-
-#include <vnet/ethernet/ethernet.h> /* for ethernet_header_t */
-#include <vnet/llc/llc.h>
-#include <vnet/snap/snap.h>
-#include <vnet/srp/packet.h>
-
-typedef CLIB_PACKED (struct
- {
- u8 version;
- u8 ttl;
- u16 checksum; /* 1's complement of the 1's complement sum */
- u8 data[0];
- }) cdp_hdr_t;
-
-typedef struct
-{
- u8 dst_address[6];
- u8 src_address[6];
- u16 len;
-} ethernet_802_3_header_t;
-
-typedef CLIB_PACKED (struct
- {
- ethernet_802_3_header_t ethernet;
- llc_header_t llc; snap_header_t snap; cdp_hdr_t cdp;
- }) ethernet_llc_snap_and_cdp_header_t;
-
-typedef CLIB_PACKED (struct
- {
- hdlc_header_t hdlc; cdp_hdr_t cdp;
- }) hdlc_and_cdp_header_t;
-
-typedef CLIB_PACKED (struct
- {
- srp_header_t srp;
- ethernet_header_t ethernet; cdp_hdr_t cdp;
- }) srp_and_cdp_header_t;
-
-typedef CLIB_PACKED (struct
- {
- u16 t;
- u16 l;
- u8 v[0];
- }) cdp_tlv_t;
-
-/*
- * TLV codes.
- */
-#define foreach_cdp_tlv_type \
-_(unused) \
-_(device_name) /* uniquely identifies the device */ \
-_(address) /* list of addresses this device has */ \
-_(port_id) /* port CDP packet was sent out on */ \
-_(capabilities) /* funct. capabilities of the device */ \
-_(version) /* version */ \
-_(platform) /* hardware platform of this device */ \
-_(ipprefix) /* An IP network prefix */ \
-_(hello) /* Pprotocol piggyback hello msg */ \
-_(vtp_domain) /* VTP management domain */ \
-_(native_vlan) /* Native VLAN number */ \
-_(duplex) /* The interface duplex mode */ \
-_(appl_vlan) /* Appliance VLAN-ID TLV */ \
-_(trigger) /* For sending trigger TLV msgs. */ \
-_(power) /* Power consumption of that device */ \
-_(mtu) /* MTU defined for sending intf. */ \
-_(trust) /* Extended trust TLV */ \
-_(cos) /* COS for Untrusted Port TLV */ \
-_(sysname) /* System name (FQDN of device) */ \
-_(sysobject) /* OID of sysObjectID MIB object */ \
-_(mgmt_addr) /* SNMP manageable addrs. of device */ \
-_(physical_loc) /* Physical Location of the device */ \
-_(mgmt_addr2) /* External Port-ID */ \
-_(power_requested) \
-_(power_available) \
-_(port_unidirectional) \
-_(unknown_28) \
-_(energywise) \
-_(unknown_30) \
-_(spare_poe)
-
-typedef enum
-{
-#define _(t) CDP_TLV_##t,
- foreach_cdp_tlv_type
-#undef _
-} cdp_tlv_code_t;
-
-/*
- The address TLV looks as follows:
-
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Number of addresses |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | IDRP encoded address |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- An address is encoded in IDRP format:
-
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | PT | PT Length | Protocol (variable) ...
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Address length | Address (variable) ...
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- PT: Protocol type
- 1 = NLPID format
- 2 = 802.2 format
-
- PT Length:
- Length of protocol field, 1 for PT = 1, and either 3 or 8 for
- 802.2 format depending if SNAP is used for PT = 2.
-
- The encodings for the other protocols have the following format:
-
- field: <SSAP><DSAP><CTRL><-------OUI------><protocl_TYPE>
- | | | | | | | | |
- bytes: 0 1 2 3 4 5 6 7 8
-
- where the first 3 bytes are 0xAAAA03 for SNAP encoded addresses.
- The OUI is 000000 for ethernet and <protocl_TYPE>
- is the assigned Ethernet type code for the particular protocol.
- e.g. for DECnet the encoding is AAAA03 000000 6003.
- for IPv6 the encoding is AAAA03 000000 86DD
-*/
-
-/*
- * Capabilities.
- */
-
-#define CDP_ROUTER_DEVICE 0x0001
-#define CDP_TB_DEVICE 0x0002
-#define CDP_SRB_DEVICE 0x0004
-#define CDP_SWITCH_DEVICE 0x0008
-#define CDP_HOST_DEVICE 0x0010
-#define CDP_IGMP_DEVICE 0x0020
-#define CDP_REPEATER_DEVICE 0x0040
-
-/*
- The protocol-hello TLV looks as follows:
-
- 0 1 2 3
- 012345678901234567890123456789012345678
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Type | Length |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | OUI |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Protocol ID |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | up to 27 bytes of message |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-*/
-
-/*
- * These macros define the valid values for the Duplex TLV.
- */
-#define CDP_DUPLEX_TLV_HALF 0x0
-#define CDP_DUPLEX_TLV_FULL 0x1
-
-#endif /* __included_cdp_protocol_h__ */
-
-/*
- * fd.io coding-style-patch-verification: ON
- *
- * Local Variables:
- * eval: (c-set-style "gnu")
- * End:
- */