Print this page
*** NO COMMENTS ***

@@ -20,10 +20,11 @@
  */
 
 /*
  * Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 1990 Mentat Inc.
+ * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
  */
 
 #include <sys/types.h>
 #include <sys/stream.h>
 #include <sys/dlpi.h>

@@ -7830,10 +7831,20 @@
          * sure we are pointing correctly above db_base.
          */
         if (ill->ill_type != IFT_ETHER)
                 return;
 
+        /*
+         * PPP (including PPPoE) interfaces lie about being an ethernet, but
+         * have other clues to indicate we should just bail now.  We exploit
+         * the 0 broadcast address length.
+         *
+         * XXX KEBE ASKS --> what about IP multicast packets?
+         */
+        if (ill->ill_bcast_addr_length == 0)
+                return;
+
 retry:
         if ((uchar_t *)pether < mp->b_datap->db_base)
                 return;
 
         /* Is there a VLAN tag? */