Date: Wed, 23 Feb 2022 14:30:43 +0300 From: =?UTF-8?B?w5Z6a2FuIEtJUklL?= <ozkan.kirik@gmail.com> To: Aleksandr Fedorov <afedorov@freebsd.org> Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-branches@freebsd.org Subject: Re: git: 543b492fa569 - stable/13 - if_vxlan(4): Allow netmap_generic to intercept RX packets. Message-ID: <CAAcX-AHOM0i5W%2Bx9Pac%2BB37aAoK8_d8U4agEMsBCgKmD0dLndw@mail.gmail.com> In-Reply-To: <202202231103.21NB34Vh052195@gitrepo.freebsd.org> References: <202202231103.21NB34Vh052195@gitrepo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Will it be MFCed to stable/12 ? On Wed, Feb 23, 2022 at 2:03 PM Aleksandr Fedorov <afedorov@freebsd.org> wrote: > > The branch stable/13 has been updated by afedorov: > > URL: https://cgit.FreeBSD.org/src/commit/?id=543b492fa569cd5839657bd9f74826ef2df121fb > > commit 543b492fa569cd5839657bd9f74826ef2df121fb > Author: Aleksandr Fedorov <afedorov@FreeBSD.org> > AuthorDate: 2022-02-06 12:27:46 +0000 > Commit: Aleksandr Fedorov <afedorov@FreeBSD.org> > CommitDate: 2022-02-23 11:01:20 +0000 > > if_vxlan(4): Allow netmap_generic to intercept RX packets. > > Netmap (generic) intercepts the if_input method to handle RX packets. > > Call ifp->if_input() instead of netisr_dispatch(). > Add stricter check for incoming packet length. > > This change is very useful with bhyve + vale + if_vxlan. > > Reviewed by: vmaffione (mentor), kib, np, donner > Approved by: vmaffione (mentor), kib, np, donner > MFC after: 2 weeks > Sponsored by: vstack.com > Differential Revision: https://reviews.freebsd.org/D30638 > > (cherry picked from commit ceaf442ff236dd0dcd303001ff41e6c64a0cfc1f) > --- > sys/net/if_vxlan.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/sys/net/if_vxlan.c b/sys/net/if_vxlan.c > index f56ec23540a7..972af73fb50e 100644 > --- a/sys/net/if_vxlan.c > +++ b/sys/net/if_vxlan.c > @@ -2812,12 +2812,16 @@ vxlan_input(struct vxlan_socket *vso, uint32_t vni, struct mbuf **m0, > struct ether_header *eh; > int error; > > + m = *m0; > + > + if (m->m_pkthdr.len < ETHER_HDR_LEN) > + return (EINVAL); > + > sc = vxlan_socket_lookup_softc(vso, vni); > if (sc == NULL) > return (ENOENT); > > ifp = sc->vxl_ifp; > - m = *m0; > eh = mtod(m, struct ether_header *); > > if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) { > @@ -2857,8 +2861,9 @@ vxlan_input(struct vxlan_socket *vso, uint32_t vni, struct mbuf **m0, > m->m_pkthdr.csum_data = 0; > } > > - error = netisr_dispatch(NETISR_ETHER, m); > + (*ifp->if_input)(ifp, m); > *m0 = NULL; > + error = 0; > > out: > vxlan_release(sc); >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAAcX-AHOM0i5W%2Bx9Pac%2BB37aAoK8_d8U4agEMsBCgKmD0dLndw>