Author: glebius
Date: Wed Mar 21 07:22:27 2012
New Revision: 233265
URL: http://svn.freebsd.org/changeset/base/233265

Log:
  Merge from head:
  r227785:
    - Reduce severity for all ARP events, that can be triggered from remote
      machine to LOG_NOTICE. Exception left to "using my IP address".
    - Fix multicast ARP warning: add newline and also log the bad MAC address.
  
    Tested by:    Alexander Wittig <wittigal msu.edu>
  
  r227790:
    Be more informative for "unknown hardware address format" message.
  
    Submitted by: Andrzej Tobola <ato iem.pw.edu.pl>

Modified:
  stable/9/sys/netinet/if_ether.c
Directory Properties:
  stable/9/sys/   (props changed)
  stable/9/sys/amd64/include/xen/   (props changed)
  stable/9/sys/boot/   (props changed)
  stable/9/sys/boot/i386/efi/   (props changed)
  stable/9/sys/boot/ia64/efi/   (props changed)
  stable/9/sys/boot/ia64/ski/   (props changed)
  stable/9/sys/boot/powerpc/boot1.chrp/   (props changed)
  stable/9/sys/boot/powerpc/ofw/   (props changed)
  stable/9/sys/cddl/contrib/opensolaris/   (props changed)
  stable/9/sys/conf/   (props changed)
  stable/9/sys/contrib/dev/acpica/   (props changed)
  stable/9/sys/contrib/octeon-sdk/   (props changed)
  stable/9/sys/contrib/pf/   (props changed)
  stable/9/sys/contrib/x86emu/   (props changed)
  stable/9/sys/fs/   (props changed)
  stable/9/sys/fs/ntfs/   (props changed)
  stable/9/sys/i386/conf/XENHVM   (props changed)

Modified: stable/9/sys/netinet/if_ether.c
==============================================================================
--- stable/9/sys/netinet/if_ether.c     Wed Mar 21 07:21:05 2012        
(r233264)
+++ stable/9/sys/netinet/if_ether.c     Wed Mar 21 07:22:27 2012        
(r233265)
@@ -433,7 +433,7 @@ arpintr(struct mbuf *m)
 
        if (m->m_len < sizeof(struct arphdr) &&
            ((m = m_pullup(m, sizeof(struct arphdr))) == NULL)) {
-               log(LOG_ERR, "arp: runt packet -- m_pullup failed\n");
+               log(LOG_NOTICE, "arp: runt packet -- m_pullup failed\n");
                return;
        }
        ar = mtod(m, struct arphdr *);
@@ -443,15 +443,17 @@ arpintr(struct mbuf *m)
            ntohs(ar->ar_hrd) != ARPHRD_ARCNET &&
            ntohs(ar->ar_hrd) != ARPHRD_IEEE1394 &&
            ntohs(ar->ar_hrd) != ARPHRD_INFINIBAND) {
-               log(LOG_ERR, "arp: unknown hardware address format (0x%2D)\n",
-                   (unsigned char *)&ar->ar_hrd, "");
+               log(LOG_NOTICE, "arp: unknown hardware address format (0x%2D)"
+                   " (from %*D to %*D)\n", (unsigned char *)&ar->ar_hrd, "",
+                   ETHER_ADDR_LEN, (u_char *)ar_sha(ar), ":",
+                   ETHER_ADDR_LEN, (u_char *)ar_tha(ar), ":");
                m_freem(m);
                return;
        }
 
        if (m->m_len < arphdr_len(ar)) {
                if ((m = m_pullup(m, arphdr_len(ar))) == NULL) {
-                       log(LOG_ERR, "arp: runt packet\n");
+                       log(LOG_NOTICE, "arp: runt packet\n");
                        m_freem(m);
                        return;
                }
@@ -527,7 +529,7 @@ in_arpinput(struct mbuf *m)
 
        req_len = arphdr_len2(ifp->if_addrlen, sizeof(struct in_addr));
        if (m->m_len < req_len && (m = m_pullup(m, req_len)) == NULL) {
-               log(LOG_ERR, "in_arp: runt packet -- m_pullup failed\n");
+               log(LOG_NOTICE, "in_arp: runt packet -- m_pullup failed\n");
                return;
        }
 
@@ -537,13 +539,14 @@ in_arpinput(struct mbuf *m)
         * a protocol length not equal to an IPv4 address.
         */
        if (ah->ar_pln != sizeof(struct in_addr)) {
-               log(LOG_ERR, "in_arp: requested protocol length != %zu\n",
+               log(LOG_NOTICE, "in_arp: requested protocol length != %zu\n",
                    sizeof(struct in_addr));
                return;
        }
 
        if (ETHER_IS_MULTICAST(ar_sha(ah))) {
-               log(LOG_ERR, "in_arp: source hardware address is multicast.");
+               log(LOG_NOTICE, "in_arp: %*D is multicast\n",
+                   ifp->if_addrlen, (u_char *)ar_sha(ah), ":");
                return;
        }
 
@@ -645,7 +648,7 @@ match:
        if (!bcmp(ar_sha(ah), enaddr, ifp->if_addrlen))
                goto drop;      /* it's from me, ignore it. */
        if (!bcmp(ar_sha(ah), ifp->if_broadcastaddr, ifp->if_addrlen)) {
-               log(LOG_ERR,
+               log(LOG_NOTICE,
                    "arp: link address is broadcast for IP address %s!\n",
                    inet_ntoa(isaddr));
                goto drop;
@@ -681,7 +684,7 @@ match:
                /* the following is not an error when doing bridging */
                if (!bridged && la->lle_tbl->llt_ifp != ifp && !carp_match) {
                        if (log_arp_wrong_iface)
-                               log(LOG_ERR, "arp: %s is on %s "
+                               log(LOG_WARNING, "arp: %s is on %s "
                                    "but got reply from %*D on %s\n",
                                    inet_ntoa(isaddr),
                                    la->lle_tbl->llt_ifp->if_xname,
@@ -716,10 +719,10 @@ match:
                    
                if (ifp->if_addrlen != ah->ar_hln) {
                        LLE_WUNLOCK(la);
-                       log(LOG_WARNING,
-                           "arp from %*D: addr len: new %d, i/f %d (ignored)",
-                           ifp->if_addrlen, (u_char *) ar_sha(ah), ":",
-                           ah->ar_hln, ifp->if_addrlen);
+                       log(LOG_WARNING, "arp from %*D: addr len: new %d, "
+                           "i/f %d (ignored)\n", ifp->if_addrlen,
+                           (u_char *) ar_sha(ah), ":", ah->ar_hln,
+                           ifp->if_addrlen);
                        goto drop;
                }
                (void)memcpy(&la->ll_addr, ar_sha(ah), ifp->if_addrlen);
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-stable-9
To unsubscribe, send any mail to "[email protected]"

Reply via email to