>@@ -964,7 +957,7 @@ sendorfree:
> /* clean ipsec history once it goes out of the node */
> ipsec_delaux(m);
> #endif
>- if (error == 0) {
>+ if (error == 0 && ia) {
> /* Record statistics for this interface address. */
> ia->ia_ifa.if_opackets++;
> ia->ia_ifa.if_obytes += m->m_pkthdr.len;
Sorry I missed this the first time we went through this. Putting the &&
ia here causes fragmented packets sent on interfaces without addresses to
not be sent -- which is not really the right plan. I think the if (ia)
belongs around the stats updates, but not around the ifp_output() call.
Testing should include something like "% ping -I 0.0.0.1 -s 2000
224.0.0.1" (where the "1" is the ifindex of an up multicast-capable
interface with no source address and "2000" is larger than its MTU),
and running tcpdump to make sure those packets make it out.
Bill
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message