timeval: Block SIGALRM when sleeping.
[openvswitch] / lib / packets.h
index 19ddd9acf66d1f213589e5ce39859ba5d7974228..24b51daff32260c58b561505abde5926de54a013 100644 (file)
@@ -181,6 +181,8 @@ void eth_addr_bitand(const uint8_t src[ETH_ADDR_LEN],
 #define ETH_TYPE_IPV6          0x86dd
 #define ETH_TYPE_LACP          0x8809
 #define ETH_TYPE_RARP          0x8035
+#define ETH_TYPE_MPLS          0x8847
+#define ETH_TYPE_MPLS_MCAST    0x8848
 
 /* Minimum value for an Ethernet type.  Values below this are IEEE 802.2 frame
  * lengths. */
@@ -227,25 +229,6 @@ struct llc_snap_header {
 } __attribute__((packed));
 BUILD_ASSERT_DECL(LLC_SNAP_HEADER_LEN == sizeof(struct llc_snap_header));
 
-#define ARP_HTYPE_ETH 0x0001
-#define RARP_REQUEST_REVERSE 0x0003
-
-#define RARP_HEADER_LEN 28
-/* RARP header only for Ethernet-IP. */
-struct rarp_header {
-    ovs_be16 hw_addr_space;        /* ARP_HTYPE_ETH. */
-    ovs_be16 proto_addr_space;     /* ETH_TYPE_IP. */
-    uint8_t hw_addr_length;        /* ETH_ADDR_LEN. */
-    uint8_t proto_addr_length;     /* IPV4_ADDR_LEN. */
-    ovs_be16 opcode;               /* RARP_REQUEST_REVERSE. */
-    uint8_t src_hw_addr[ETH_ADDR_LEN];
-    ovs_be32 src_proto_addr;
-    uint8_t target_hw_addr[ETH_ADDR_LEN];
-    ovs_be32 target_proto_addr;
-} __attribute__((packed));
-BUILD_ASSERT_DECL(RARP_HEADER_LEN == sizeof(struct rarp_header));
-
-
 #define VLAN_VID_MASK 0x0fff
 #define VLAN_VID_SHIFT 0
 
@@ -342,6 +325,10 @@ void ip_format_masked(ovs_be32 ip, ovs_be32 mask, struct ds *);
 #endif
 
 /* TOS fields. */
+#define IP_ECN_NOT_ECT 0x0
+#define IP_ECN_ECT_1 0x01
+#define IP_ECN_ECT_0 0x02
+#define IP_ECN_CE 0x03
 #define IP_ECN_MASK 0x03
 #define IP_DSCP_MASK 0xfc
 
@@ -425,6 +412,7 @@ BUILD_ASSERT_DECL(TCP_HEADER_LEN == sizeof(struct tcp_header));
 #define ARP_PRO_IP 0x0800
 #define ARP_OP_REQUEST 1
 #define ARP_OP_REPLY 2
+#define ARP_OP_RARP 3
 
 #define ARP_ETH_HEADER_LEN 28
 struct arp_eth_header {