Michael,

On Wed, May 25, 2016 at 01:48:26PM +0000, Michael Tuexen wrote:
M> Author: tuexen
M> Date: Wed May 25 13:48:26 2016
M> New Revision: 300679
M> URL: https://svnweb.freebsd.org/changeset/base/300679
M> 
M> Log:
M>   Count packets as not being delivered only if they are neither
M>   processed by a kernel handler nor by a raw socket.
M>   
M>   MFC after: 1 week
M> 
M> Modified:
M>   head/sys/netinet/raw_ip.c
M> 
M> Modified: head/sys/netinet/raw_ip.c
M> 
==============================================================================
M> --- head/sys/netinet/raw_ip.c        Wed May 25 13:09:06 2016        
(r300678)
M> +++ head/sys/netinet/raw_ip.c        Wed May 25 13:48:26 2016        
(r300679)
M> @@ -132,6 +132,8 @@ int (*ip_rsvp_vif)(struct socket *, stru
M>  void (*ip_rsvp_force_done)(struct socket *);
M>  #endif /* INET */
M>  
M> +extern      struct protosw inetsw[];
M> +
M>  u_long      rip_sendspace = 9216;
M>  SYSCTL_ULONG(_net_inet_raw, OID_AUTO, maxdgram, CTLFLAG_RW,
M>      &rip_sendspace, 0, "Maximum outgoing raw IP datagram size");
M> @@ -411,9 +413,11 @@ rip_input(struct mbuf **mp, int *offp, i
M>                      IPSTAT_INC(ips_delivered);
M>              INP_RUNLOCK(last);
M>      } else {
M> +            if (inetsw[ip_protox[ip->ip_p]].pr_input == rip_input) {
M> +                    IPSTAT_INC(ips_noproto);
M> +                    IPSTAT_DEC(ips_delivered);
M> +            }
M>              m_freem(m);
M> -            IPSTAT_INC(ips_noproto);
M> -            IPSTAT_DEC(ips_delivered);
M>      }
M>      return (IPPROTO_DONE);
M>  }

How could it happen at this place that inetsw[ip_protox[ip->ip_p]].pr_input != 
rip_input?

Another question. Can we get rid of ugly IPSTAT_DEC()? Since pr_input is an 
integer,
we could return error up to ip_input() that would indicate non-delivery.

-- 
Totus tuus, Glebius.
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to