ovs-benchmark: Improve output format for "rate" command.
[openvswitch] / lib / packets.h
index 9e283a5abd1767ce3abd693bf883d2e5bcb95bde..16834a8b72b28a6711d8245852bd95aa6f7ae368 100644 (file)
@@ -333,11 +333,23 @@ struct ip_header {
 };
 BUILD_ASSERT_DECL(IP_HEADER_LEN == sizeof(struct ip_header));
 
-#define ICMP_HEADER_LEN 4
+#define ICMP_HEADER_LEN 8
 struct icmp_header {
     uint8_t icmp_type;
     uint8_t icmp_code;
     ovs_be16 icmp_csum;
+    union {
+        struct {
+            ovs_be16 id;
+            ovs_be16 seq;
+        } echo;
+        struct {
+            ovs_be16 empty;
+            ovs_be16 mtu;
+        } frag;
+        ovs_be32 gateway;
+    } icmp_fields;
+    uint8_t icmp_data[0];
 };
 BUILD_ASSERT_DECL(ICMP_HEADER_LEN == sizeof(struct icmp_header));
 
@@ -357,6 +369,7 @@ BUILD_ASSERT_DECL(UDP_HEADER_LEN == sizeof(struct udp_header));
 #define TCP_ACK 0x10
 #define TCP_URG 0x20
 
+#define TCP_CTL(flags, offset) (htons((flags) | ((offset) << 12)))
 #define TCP_FLAGS(tcp_ctl) (ntohs(tcp_ctl) & 0x003f)
 #define TCP_OFFSET(tcp_ctl) (ntohs(tcp_ctl) >> 12)