summaryrefslogtreecommitdiff
path: root/sys/src/9/ip/pktmedium.c
AgeCommit message (Collapse)Author
2022-02-16devip: dont hold ifc wlock during medium bind/unbindcinap_lenrek
Wlock()'ing the ifc causes a deadlock with Medium bind/unbind as the routine can walk /net, while ndb/dns or ndb/cs are currently blocked enumerating /net/ipifc/*. The fix is to have a fake medium, called "unbound", that is set temporarily during the call of Medium bind and unbind. That way, the interface rwlock can be released while bind/unbind is in progress. The ipifcunbind() routine will refuse to unbind a ifc that is currently assigned to the "unbound" medium, preventing any accidents.
2021-10-09devip: cache arp entry in Routehintcinap_lenrek
Instead of having to do an arp hash table lookup for each outgoing ip packet, forward the Routehint pointer to the medium's bwrite() function and let it cache the arp entry pointer. This avoids route and arp hash table lookups for tcp, il and connection oriented udp. It also allows us to avoid multiple route and arp table lookups for the retransmits once an arp/neighbour solicitation response arrives.
2018-01-22ip: make pkt interfaces unbind on close (from inferno)cinap_lenrek
2016-11-15ip/pktmedium: no mintu, no maclen... thi is ip packetscinap_lenrek
2016-11-15ip/pktmedium: fix wrong hsize, theres no ethernet header on packet mediacinap_lenrek
packet media is just raw ip packets, so theres no link-level header there. was probably copy-pasted from ethermedium...
2016-11-07ip: always pass a single block to Medium.bwrite(), avoid concatblock() calls ↵cinap_lenrek
in Dev.bwrite() the convention for Dev.bwrite() is that it accepts a *single* block, and not a block chain. so we never have concatblock here. to keep stuff consistent, we also guarantee thet Medium.bwrite() will get a *single* block passed as well, as the callers are few in number.
2011-03-30Import sources from 2011-03-30 iso image - libTaru Karttunen
2011-03-30Import sources from 2011-03-30 iso imageTaru Karttunen