diff options
author | Dave Barach <dave@barachs.net> | 2018-03-10 14:57:00 -0500 |
---|---|---|
committer | Dave Barach <dave@barachs.net> | 2018-03-10 15:27:58 -0500 |
commit | aaacfbc5b15b0653489ad2e80db48151a4375ece (patch) | |
tree | cbe4228c1e674116563229e52bc5e9d73229b5af /src/vnet/cdp/cdp_protocol.h | |
parent | fde0929d9362eac5c416f658e1d2031d01a02337 (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.h | 186 |
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: - */ |