<net/ethernet.h>: Add ETHER_MAX_FRAME (taken from FreeBSD).
authorSascha Wildner <saw@online.de>
Wed, 29 Dec 2010 15:55:59 +0000 (16:55 +0100)
committerSascha Wildner <saw@online.de>
Wed, 7 Sep 2011 05:16:34 +0000 (07:16 +0200)
sys/net/ethernet.h

index f1e168c..8591cb0 100644 (file)
@@ -2,7 +2,6 @@
  * Fundamental constants relating to ethernet.
  *
  * $FreeBSD: src/sys/net/ethernet.h,v 1.12.2.8 2002/12/01 14:03:09 sobomax Exp $
- * $DragonFly: src/sys/net/ethernet.h,v 1.21 2008/09/17 07:51:59 sephe Exp $
  *
  */
 
 
 #define ETHER_VLAN_ENCAP_LEN   4       /* len of 802.1Q VLAN encapsulation */
 
+/*
+ * Compute the maximum frame size based on ethertype (i.e. possible
+ * encapsulation) and whether or not an FCS is present.
+ */
+#define        ETHER_MAX_FRAME(ifp, etype, hasfcs)                             \
+       ((ifp)->if_mtu + ETHER_HDR_LEN +                                \
+        ((hasfcs) ? ETHER_CRC_LEN : 0) +                               \
+        (((etype) == ETHERTYPE_VLAN) ? ETHER_VLAN_ENCAP_LEN : 0))
+
 /*
  * Ethernet CRC32 polynomials (big- and little-endian verions).
  */