On Thu, Mar 31, 2011 at 03:38:37PM +0200, Mike Belopuhov wrote: > bpf is not called on multicast/broadcast packets arriving to the carp > interface. this allows us to setup drop filters and allows tcpdump to > show all the packets. > > OK/not-OK? > > Index: ip_carp.c > =================================================================== > RCS file: /home/cvs/src/sys/netinet/ip_carp.c,v > retrieving revision 1.181 > diff -u -p -u -p -r1.181 ip_carp.c > --- ip_carp.c 8 Mar 2011 22:53:28 -0000 1.181 > +++ ip_carp.c 31 Mar 2011 13:02:43 -0000 > @@ -1580,6 +1580,11 @@ carp_input(struct mbuf *m, u_int8_t *sho > if (m0 == NULL) > continue; > m0->m_pkthdr.rcvif = &vh->sc_if; > +#if NBPFILTER > 0 > + if (vh->sc_if.if_bpf) > + bpf_mtap_hdr(vh->sc_if.if_bpf, (char *)&eh, > + ETHER_HDR_LEN, m0, BPF_DIRECTION_IN); > +#endif The packet accounting is missing as well. So add this vh->sc_if.if_ipackets++; and then the diff is OK claudio@ > ether_input(&vh->sc_if, &eh, m0); > } > return (1); >
-- :wq Claudio