Prepare Open vSwitch 1.1.2 release.
[sliver-openvswitch.git] / lib / packets.h
index dcb5b9f..44cd5a7 100644 (file)
@@ -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
@@ -412,6 +394,11 @@ struct in6_addr ipv6_create_mask(int mask);
 int ipv6_count_cidr_bits(const struct in6_addr *netmask);
 bool ipv6_is_cidr(const struct in6_addr *netmask);
 
+void *
+compose_packet(struct ofpbuf *, const uint8_t eth_dst[ETH_ADDR_LEN],
+               const uint8_t eth_src[ETH_ADDR_LEN], uint16_t eth_type,
+               size_t size);
+
 /* Masks for lacp_info state member. */
 #define LACP_STATE_ACT  0x01 /* Activity. Active or passive? */
 #define LACP_STATE_TIME 0x02 /* Timeout. Short or long timeout? */
@@ -429,12 +416,12 @@ bool ipv6_is_cidr(const struct in6_addr *netmask);
 
 #define LACP_INFO_LEN 15
 struct lacp_info {
-    ovs_be16 sys_priority;       /* System priority. */
-    uint8_t sysid[ETH_ADDR_LEN]; /* System ID. */
-    ovs_be16 key;                /* Operational key. */
-    ovs_be16 port_priority;      /* Port priority. */
-    ovs_be16 portid;             /* Port ID. */
-    uint8_t state;               /* State mask.  See LACP_STATE macros. */
+    ovs_be16 sys_priority;            /* System priority. */
+    uint8_t sys_id[ETH_ADDR_LEN];     /* System ID. */
+    ovs_be16 key;                     /* Operational key. */
+    ovs_be16 port_priority;           /* Port priority. */
+    ovs_be16 port_id;                 /* Port ID. */
+    uint8_t state;                    /* State mask.  See LACP_STATE macros. */
 } __attribute__((packed));
 BUILD_ASSERT_DECL(LACP_INFO_LEN == sizeof(struct lacp_info));
 
@@ -460,9 +447,6 @@ struct lacp_pdu {
 } __attribute__((packed));
 BUILD_ASSERT_DECL(LACP_PDU_LEN == sizeof(struct lacp_pdu));
 
-void compose_lacp_packet(struct ofpbuf *, const uint8_t eth_src[ETH_ADDR_LEN],
-                         const struct lacp_pdu *);
-
 void compose_lacp_pdu(const struct lacp_info *actor,
                       const struct lacp_info *partner, struct lacp_pdu *);