From: Ethan Jackson Date: Fri, 25 Mar 2011 20:57:21 +0000 (-0700) Subject: packets: Move CFM related packet information to cfm header file. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2a899f6e8ab6abf416fc4fdabacc9ae707d5b1c3;p=openvswitch packets: Move CFM related packet information to cfm header file. --- diff --git a/lib/cfm.h b/lib/cfm.h index 555e39be..651b1c4b 100644 --- a/lib/cfm.h +++ b/lib/cfm.h @@ -20,14 +20,34 @@ #include #include "hmap.h" -#include "packets.h" +#include "openvswitch/types.h" struct flow; +struct ofpbuf; /* Ethernet destination address of CCM packets. */ -static const uint8_t eth_addr_ccm[ETH_ADDR_LEN] OVS_UNUSED +static const uint8_t eth_addr_ccm[6] OVS_UNUSED = { 0x01, 0x80, 0xC2, 0x00, 0x00, 0x30 }; +#define ETH_TYPE_CFM 0x8902 + +/* A 'ccm' represents a Continuity Check Message from the 802.1ag + * specification. Continuity Check Messages are broadcast periodically so that + * hosts can determine who they have connectivity to. */ +#define CCM_LEN 74 +#define CCM_MAID_LEN 48 +struct ccm { + uint8_t mdlevel_version; /* MD Level and Version */ + uint8_t opcode; + uint8_t flags; + uint8_t tlv_offset; + ovs_be32 seq; + ovs_be16 mpid; + uint8_t maid[CCM_MAID_LEN]; + uint8_t zero[16]; /* Defined by ITU-T Y.1731 should be zero */ +} __attribute__((packed)); +BUILD_ASSERT_DECL(CCM_LEN == sizeof(struct ccm)); + /* A 'cfm' represent a local Maintenance Point (MP) and its Connectivity Fault * Management (CFM) state machine. Its configuration variables should be set * by clients of the CFM library. */ diff --git a/lib/packets.h b/lib/packets.h index bf071e8e..44cd5a73 100644 --- a/lib/packets.h +++ b/lib/packets.h @@ -163,7 +163,6 @@ void compose_benign_packet(struct ofpbuf *, const char *tag, #define ETH_TYPE_ARP 0x0806 #define ETH_TYPE_VLAN 0x8100 #define ETH_TYPE_IPV6 0x86dd -#define ETH_TYPE_CFM 0x8902 #define ETH_TYPE_LACP 0x8809 /* Minimum value for an Ethernet type. Values below this are IEEE 802.2 frame @@ -252,23 +251,6 @@ struct vlan_eth_header { } __attribute__((packed)); BUILD_ASSERT_DECL(VLAN_ETH_HEADER_LEN == sizeof(struct vlan_eth_header)); -/* A 'ccm' represents a Continuity Check Message from the 802.1ag specification. - * Continuity Check Messages are broadcast periodically so that hosts can - * determine who they have connectivity to. */ -#define CCM_LEN 74 -#define CCM_MAID_LEN 48 -struct ccm { - uint8_t mdlevel_version; /* MD Level and Version */ - uint8_t opcode; - uint8_t flags; - uint8_t tlv_offset; - ovs_be32 seq; - ovs_be16 mpid; - uint8_t maid[CCM_MAID_LEN]; - uint8_t zero[16]; /* Defined by ITU-T Y.1731 should be zero */ -} __attribute__((packed)); -BUILD_ASSERT_DECL(CCM_LEN == sizeof(struct ccm)); - /* The "(void) (ip)[0]" below has no effect on the value, since it's the first * argument of a comma expression, but it makes sure that 'ip' is a pointer. * This is useful since a common mistake is to pass an integer instead of a