if (hook != priv->nomatch_hook) {
if ((f = NG_HOOK_PRIVATE(hook)) == NULL) {
NG_FREE_DATA(m, meta);
return (EOPNOTSUPP);
}
M_PREPEND(m, EVL_ENCAPLEN, M_DONTWAIT);
/* M_PREPEND takes care of m_len and m_pkthdr.len. */
if (m == NULL || (m->m_len < sizeof(*evl) &&
(m = m_pullup(m, sizeof(*evl))) == NULL)) {
NG_FREE_META(meta);
return (ENOMEM);
}
/*
* Transform the Ethernet header into an Ethernet header
* with 802.1Q encapsulation.
*/
bcopy(mtod(m, char *) + EVL_ENCAPLEN,
mtod(m, char *), ETHER_HDR_LEN);
evl = mtod(m, struct ether_vlan_header *);
evl->evl_proto = evl->evl_encap_proto;
evl->evl_encap_proto = htons(ETHERTYPE_VLAN);
evl->evl_tag = htons(f->vlan);
}
NG_SEND_DATA(error, priv->downstream_hook, m, meta);
怎么不加mtu的判断?是否存在超长包现象?感觉比率会很高,尤其是在传送文件时候。