packets: New macros for detecting IP fragments.
authorBen Pfaff <blp@nicira.com>
Mon, 14 Jul 2008 20:54:45 +0000 (13:54 -0700)
committerBen Pfaff <blp@nicira.com>
Fri, 18 Jul 2008 20:42:38 +0000 (13:42 -0700)
include/packets.h

index 5d4eb56..177bc30 100644 (file)
@@ -173,6 +173,12 @@ BUILD_ASSERT_DECL(VLAN_ETH_HEADER_LEN == sizeof(struct vlan_eth_header));
 
 #define IP_VERSION 4
 
+#define IP_DONT_FRAGMENT  0x4000 /* Don't fragment. */
+#define IP_MORE_FRAGMENTS 0x2000 /* More fragments. */
+#define IP_FRAG_OFF_MASK  0x1fff /* Fragment offset. */
+#define IP_IS_FRAGMENT(ip_frag_off) \
+        (ntohs(ip_frag_off) & (IP_MORE_FRAGMENTS | IP_FRAG_OFF_MASK))
+
 #define IP_HEADER_LEN 20
 struct ip_header {
     uint8_t ip_ihl_ver;