This is an old revision of the document!
FreeBSD Developer Summit: Networking Working Group
We would like to cover the following topics. This is not an exhaustive list and if you feel there is something missing that you want to talk about, contact the session chair and your topic will be included here.
Agenda
Please send talks, brainstorm topics, or other proposals to the session leaders, LawrenceStewart and GlebSmirnoff.
- Protocols
- TCP
- Deferring reassembly to user context (Lawrence)
- MPTCP (Lawrence)
- Deferring mbuf drop on ACK (Scott)
- UI for controlling TCP dynamics (Lawrence, Andre)
- SACK rewrite (Andre)
- Infrastructure
- Hostcache (Lawrence)
- Interface dangling pointers
- RX pointer in mbufs
Problem: we don't refcount interface per mbuf which can lead to dangling pointers (particularly problematic in subsystems which hold mbufs for some time e.g. dummynet, netgraph) - IOCTLs, rtentries, etc.
- Stack-driver interface (Andre)
- RX/TX IFQ/Multiqueue
- API/advertising hardware offload capabilities (kernel + userland)
- Making ifnet opaque to driver
- Juniper proposal?
- Performance optimisation
- Routing subsystem
- FIB vs RIB
Problem: Trie is too generic - rtentry locking Problem: Per-packet per-rtentry locking kills performance
- Netgraph (Alexander, Gleb)
- Topology locking
Problem: Topology locking hurts performance and doesn't currently protect nodes from all possible config changes which can lead to panic - Hand rolled RW locking
Problem: For nodes that do nothing e.g. ng_tee, atomic inc/dec is too heavy weight, so ideally need a better solution for all nodes
- Fast path locking
- Fast path cache misses, amount of memory accessed per read/write (Adrian)
- MBUFS
- Ref counting
Problem: uint32_t's coming from single zone non contiguous in memory with the mbuf
Possible solutions:
- Batching
- Multi-(process|thread) accept (Gleb) Problem:
Possible solutions:
- Light weight ref counter based on count(9) (Gleb) Problem:
- Testing
- NSC userpsace stack (Lawrence)
- Testing @ Netflix (Lawrence)
- Testing @ Orange (Olivier)
- Ownership
Possible Topics
These are the possible topics for this working group. Ideally, someone will volunteer to research the current state to allow an informed discussion to take place. Please contact the session leaders, LawrenceStewart and GlebSmirnoff, to coordinate. The session leaders will set the final working agenda based on feedback received.
(insert topics here)
Results
(Add a list or attach slides detailing the achieved results here.)