CVSROOT: /cvs
Module name: src
Changes by: [email protected] 2025/10/30 11:30:46
Modified files:
sys/net : if.c netisr.h pipex.c
Log message:
Kill pipexintr().
It was used because the netlock state is unpredictable while
pipex_pppoe_output() was called. So the PPPoE output was deferred to
netisr to make sure the lock is held. However, the protocol of our
peer is always AF_UNSPEC, so ether_output() and following ether_resolve()
are just "memcpy(eh, dst->sa_data, sizeof(*eh));" where `dst' is the
immutable data of pipex session.
Manually fill ethernet header and enqueue packet. Someone could say this
the copy-paste from ether_output(), but it is very small and this time I
intentionally want to use it instead of non-obvious ifp->if_output(). So
the PPPoE pipex output became lockless.
ok yasuoka