m-m_pkthdr.rcvif and ip6_input()

2014-05-12 Thread Martin Pieuchot
Like the previous diffs, it reduces the number of m-m_pkthdr.rcvif
occurrences, this time in ip6_input().  Should be no functional change. 

Ok?

Index: netinet6/ip6_input.c
===
RCS file: /home/ncvs/src/sys/netinet6/ip6_input.c,v
retrieving revision 1.124
diff -u -p -r1.124 ip6_input.c
--- netinet6/ip6_input.c14 Apr 2014 09:06:42 -  1.124
+++ netinet6/ip6_input.c12 May 2014 13:08:35 -
@@ -190,6 +190,7 @@ extern struct   route_in6 ip6_forward_rt;
 void
 ip6_input(struct mbuf *m)
 {
+   struct ifnet *ifp;
struct ip6_hdr *ip6;
int off, nest;
u_int32_t plen;
@@ -202,9 +203,8 @@ ip6_input(struct mbuf *m)
int srcrt = 0, isanycast = 0;
u_int rtableid = 0;
 
-   /*
-* mbuf statistics by kazu
-*/
+   ifp = m-m_pkthdr.rcvif;
+
if (m-m_flags  M_EXT) {
if (m-m_next)
ip6stat.ip6s_mext2m++;
@@ -214,23 +214,21 @@ ip6_input(struct mbuf *m)
if (m-m_next) {
if (m-m_flags  M_LOOP) {
ip6stat.ip6s_m2m[lo0ifp-if_index]++;   /*XXX*/
-   } else if (m-m_pkthdr.rcvif-if_index  
nitems(ip6stat.ip6s_m2m))
-   ip6stat.ip6s_m2m[m-m_pkthdr.rcvif-if_index]++;
+   } else if (ifp-if_index  nitems(ip6stat.ip6s_m2m))
+   ip6stat.ip6s_m2m[ifp-if_index]++;
else
ip6stat.ip6s_m2m[0]++;
} else
ip6stat.ip6s_m1++;
}
 
-   in6_ifstat_inc(m-m_pkthdr.rcvif, ifs6_in_receive);
+   in6_ifstat_inc(ifp, ifs6_in_receive);
ip6stat.ip6s_total++;
 
if (m-m_len  sizeof(struct ip6_hdr)) {
-   struct ifnet *inifp;
-   inifp = m-m_pkthdr.rcvif;
if ((m = m_pullup(m, sizeof(struct ip6_hdr))) == NULL) {
ip6stat.ip6s_toosmall++;
-   in6_ifstat_inc(inifp, ifs6_in_hdrerr);
+   in6_ifstat_inc(ifp, ifs6_in_hdrerr);
return;
}
}
@@ -239,13 +237,12 @@ ip6_input(struct mbuf *m)
 
if ((ip6-ip6_vfc  IPV6_VERSION_MASK) != IPV6_VERSION) {
ip6stat.ip6s_badvers++;
-   in6_ifstat_inc(m-m_pkthdr.rcvif, ifs6_in_hdrerr);
+   in6_ifstat_inc(ifp, ifs6_in_hdrerr);
goto bad;
}
 
 #if NCARP  0
-   if (m-m_pkthdr.rcvif-if_type == IFT_CARP 
-   ip6-ip6_nxt != IPPROTO_ICMPV6 
+   if (ifp-if_type == IFT_CARP  ip6-ip6_nxt != IPPROTO_ICMPV6 
carp_lsdrop(m, AF_INET6, ip6-ip6_src.s6_addr32,
ip6-ip6_dst.s6_addr32))
goto bad;
@@ -261,14 +258,14 @@ ip6_input(struct mbuf *m)
 * XXX: badscope is not very suitable for a multicast source.
 */
ip6stat.ip6s_badscope++;
-   in6_ifstat_inc(m-m_pkthdr.rcvif, ifs6_in_addrerr);
+   in6_ifstat_inc(ifp, ifs6_in_addrerr);
goto bad;
}
if ((IN6_IS_ADDR_LOOPBACK(ip6-ip6_src) ||
IN6_IS_ADDR_LOOPBACK(ip6-ip6_dst)) 
-   (m-m_pkthdr.rcvif-if_flags  IFF_LOOPBACK) == 0) {
+   (ifp-if_flags  IFF_LOOPBACK) == 0) {
ip6stat.ip6s_badscope++;
-   in6_ifstat_inc(m-m_pkthdr.rcvif, ifs6_in_addrerr);
+   in6_ifstat_inc(ifp, ifs6_in_addrerr);
goto bad;
}
if (IN6_IS_ADDR_MC_INTFACELOCAL(ip6-ip6_dst) 
@@ -280,7 +277,7 @@ ip6_input(struct mbuf *m)
 * as the outgoing/incoming interface.
 */
ip6stat.ip6s_badscope++;
-   in6_ifstat_inc(m-m_pkthdr.rcvif, ifs6_in_addrerr);
+   in6_ifstat_inc(ifp, ifs6_in_addrerr);
goto bad;
}
 
@@ -299,7 +296,7 @@ ip6_input(struct mbuf *m)
if (IN6_IS_ADDR_V4MAPPED(ip6-ip6_src) ||
IN6_IS_ADDR_V4MAPPED(ip6-ip6_dst)) {
ip6stat.ip6s_badscope++;
-   in6_ifstat_inc(m-m_pkthdr.rcvif, ifs6_in_addrerr);
+   in6_ifstat_inc(ifp, ifs6_in_addrerr);
goto bad;
}
 #if 0
@@ -313,7 +310,7 @@ ip6_input(struct mbuf *m)
if (IN6_IS_ADDR_V4COMPAT(ip6-ip6_src) ||
IN6_IS_ADDR_V4COMPAT(ip6-ip6_dst)) {
ip6stat.ip6s_badscope++;
-   in6_ifstat_inc(m-m_pkthdr.rcvif, ifs6_in_addrerr);
+   in6_ifstat_inc(ifp, ifs6_in_addrerr);
goto bad;
}
 #endif
@@ -323,7 +320,7 @@ ip6_input(struct mbuf *m)
  * Packet filter
  */
odst = ip6-ip6_dst;
-   if (pf_test(AF_INET6, PF_IN, m-m_pkthdr.rcvif, m, NULL) != PF_PASS)
+   if (pf_test(AF_INET6, PF_IN, ifp, m, NULL) != PF_PASS)
goto bad;
if (m == NULL)
 

Re: m-m_pkthdr.rcvif and ip6_input()

2014-05-12 Thread Mike Belopuhov
On 12 May 2014 15:12, Martin Pieuchot mpieuc...@nolizard.org wrote:
 Like the previous diffs, it reduces the number of m-m_pkthdr.rcvif
 occurrences, this time in ip6_input().  Should be no functional change.

 Ok?


OK