Index: sys/net/if_vxlan.c =================================================================== --- sys/net/if_vxlan.c +++ sys/net/if_vxlan.c @@ -2769,7 +2769,7 @@ vso = xvso; offset += sizeof(struct udphdr); - if (m->m_pkthdr.len < offset + sizeof(struct vxlan_header)) + if (m->m_pkthdr.len < offset + sizeof(struct vxlan_header) + ETHER_HDR_LEN) goto out; if (__predict_false(m->m_len < offset + sizeof(struct vxlan_header))) { @@ -2810,7 +2810,7 @@ struct ifnet *ifp; struct mbuf *m; struct ether_header *eh; - int error; + int error = 0; sc = vxlan_socket_lookup_softc(vso, vni); if (sc == NULL) @@ -2857,7 +2857,7 @@ m->m_pkthdr.csum_data = 0; } - error = netisr_dispatch(NETISR_ETHER, m); + (*ifp->if_input)(ifp, m); *m0 = NULL; out: