Author: philip
Date: Sat Sep 28 15:49:36 2013
New Revision: 255928
URL: http://svnweb.freebsd.org/changeset/base/255928

Log:
  Use the correct EtherType for logging IPv6 packets.
  
  Reviewed by:  melifaro
  Approved by:  re (kib, glebius)
  MFC after:    3 days

Modified:
  head/sys/netpfil/ipfw/ip_fw_log.c

Modified: head/sys/netpfil/ipfw/ip_fw_log.c
==============================================================================
--- head/sys/netpfil/ipfw/ip_fw_log.c   Sat Sep 28 15:46:03 2013        
(r255927)
+++ head/sys/netpfil/ipfw/ip_fw_log.c   Sat Sep 28 15:49:36 2013        
(r255928)
@@ -255,11 +255,18 @@ ipfw_log(struct ip_fw *f, u_int hlen, st
 
                if (args->eh) /* layer2, use orig hdr */
                        BPF_MTAP2(log_if, args->eh, ETHER_HDR_LEN, m);
-               else
+               else {
                        /* Add fake header. Later we will store
                         * more info in the header.
                         */
-                       BPF_MTAP2(log_if, "DDDDDDSSSSSS\x08\x00", 
ETHER_HDR_LEN, m);
+                       if (ip->ip_v == 4)
+                               BPF_MTAP2(log_if, "DDDDDDSSSSSS\x08\x00", 
ETHER_HDR_LEN, m);
+                       else if  (ip->ip_v == 6)
+                               BPF_MTAP2(log_if, "DDDDDDSSSSSS\x86\xdd", 
ETHER_HDR_LEN, m);
+                       else
+                               /* Obviously bogus EtherType. */
+                               BPF_MTAP2(log_if, "DDDDDDSSSSSS\xff\xff", 
ETHER_HDR_LEN, m);
+               }
                LOGIF_RUNLOCK();
 #endif /* !WITHOUT_BPF */
                return;
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to