Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| networking [2014/10/01 17:29] – add protocol loading issue JohnMarkGurney | networking [2021/04/25 08:13] (current) – Fix DevSummit links. JethroNederhof | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | This topic is ' | + | This is ' |
| - | If you want to work on a task please put your Wiki name next to it. Participation in other forums such as the net@%%FreeBSD%%.org mailing list is strongly encouraged. There is plenty for volunteers of all aptitude levels to do; some of this work even has the potential to be funded open source work. | + | If you want to work on a task please put your %%WikiName%% |
| - | + | ||
| - | As a general rule of thumb it takes around 2 weeks to get good feedback about changes to %%FreeBSD%%-CURRENT. | + | |
| The tasks are arranged roughly in descending order of how quickly they can/should be finished. | The tasks are arranged roughly in descending order of how quickly they can/should be finished. | ||
| + | |||
| + | **Subpages** | ||
| + | |||
| + | * [[Networking/ | ||
| + | * [[Networking/ | ||
| + | * [[Networking/ | ||
| ===== Low hanging userland fruit ===== | ===== Low hanging userland fruit ===== | ||
| Line 62: | Line 66: | ||
| * The [[http:// | * The [[http:// | ||
| * Make ' | * Make ' | ||
| - | * A [[http:// | + | * A '' |
| * Teach the net/olsrd port to use IP_ONESBCAST. | * Teach the net/olsrd port to use IP_ONESBCAST. | ||
| * A patch has been sent to the port maintainer. -- BruceSimpson | * A patch has been sent to the port maintainer. -- BruceSimpson | ||
| Line 123: | Line 127: | ||
| * protosw(9) man page for protocol switch APIs. | * protosw(9) man page for protocol switch APIs. | ||
| * Revisit multi-mbuf allocation, multi-mbuf input. | * Revisit multi-mbuf allocation, multi-mbuf input. | ||
| + | * ether_input() accepts a list of mbufs | ||
| * Investigate solutions to inpcb tear-down races involving timers with tcp -- right now, timers are stopped but not drained, so timers can race with tear-down, hence NULL checks in timer code. | * Investigate solutions to inpcb tear-down races involving timers with tcp -- right now, timers are stopped but not drained, so timers can race with tear-down, hence NULL checks in timer code. | ||
| * Revisit locking and atomicity for uipc_send(), | * Revisit locking and atomicity for uipc_send(), | ||
| Line 128: | Line 133: | ||
| * Continue pushing of control of state changes from socket layer to protocol layer so as to improve inter-layer consistency and reduce races between layers on socket state transitions (connect/ | * Continue pushing of control of state changes from socket layer to protocol layer so as to improve inter-layer consistency and reduce races between layers on socket state transitions (connect/ | ||
| * Analysis of listen state transitions, | * Analysis of listen state transitions, | ||
| - | * Integrate solutions for RSS (for reference: [[ComparingMutiqueueSupportLinuxvsFreeBSD|ComparingMutiqueueSupportLinuxvsFreeBSD]] [[NetworkRSS|NetworkRSS]] | + | * Integrate solutions for RSS (for reference: [[DevSummit/ |
| ===== Long term projects ===== | ===== Long term projects ===== | ||
| Line 150: | Line 155: | ||
| * Implement source routing policy. | * Implement source routing policy. | ||
| * This is deliberately vague as it needs further research. | * This is deliberately vague as it needs further research. | ||
| - | * Original research is currently being conducted in the formal academic world into the issues around implementing DiffServ and IntServ, both of which impact forwarding at all layers of the stack. | + | * Original research is currently being conducted in the formal academic world into the issues around implementing |
| * This is an area for funded formal research. | * This is an area for funded formal research. | ||
| * Explore increasing netisr queue depth due to gallatin' | * Explore increasing netisr queue depth due to gallatin' | ||
| Line 164: | Line 169: | ||
| * Implement API to program FIB for given family | * Implement API to program FIB for given family | ||
| * Implement IPv4 FIB | * Implement IPv4 FIB | ||
| - | * Socket / mbuf lifecycle and refcounting | ||
| - | * Netflix have noticed a lot of memory accesses when managing externally refcounted mbufs. The root seems to be the refcount itself - it comes out of a separate UMA pool full of DWORD (4-byte) refcounts, which almost always ends up being a read from memory rather than from L2/L3 cache. glebius@ has a patch to migrate mbuf refcounting into a couple of methods so mbufs that are backed by vmpage/ | ||
| - | * TCP / UDP incoming load balancing across multiple threads/ | ||
| * mbuf backing store representation | * mbuf backing store representation | ||
| * Under memory fragmentation, | * Under memory fragmentation, | ||
| Line 182: | Line 184: | ||
| 802.11 Wireless is a ' | 802.11 Wireless is a ' | ||
| - | * Implement 802.11n ' | + | * Look at a few things: |
| - | * Receive and transmit diversity. | + | |
| - | * Develop | + | |
| - | * tap emulates 802.3 Ethernet, it would be useful to have same for 802.11. | + | |
| - | * This will be instrumental in developing 802.11s ESS Mesh. | + | |
| - | * The if_bridge code serves as a reference for doing " | + | |
| - | * See [[http:// | + | |
| - | * Confirm that we support 802.11 frame injection via bpf/pcap from userland. | + | |
| - | * Such a virtual 802.11 driver could potentially be used to implement the following: | + | |
| * [[http:// | * [[http:// | ||
| * [[http:// | * [[http:// | ||
| Line 225: | Line 220: | ||
| * If we want to send 802.1p priority, this should be done as part of a full implementation. | * If we want to send 802.1p priority, this should be done as part of a full implementation. | ||
| * When layers are being crossed, something between the protocol layer and link layer will be responsible for mapping the DSCP byte to 802.1p. | * When layers are being crossed, something between the protocol layer and link layer will be responsible for mapping the DSCP byte to 802.1p. | ||
| - | * Until RSVP and DiffServ are fully implemented, | + | * Until RSVP and %%DiffServ%% are fully implemented, |
| * Create a %%FreeBSD%% port of KOM RSVPD (it interoperates with kernel rsvp code and ALTQ). | * Create a %%FreeBSD%% port of KOM RSVPD (it interoperates with kernel rsvp code and ALTQ). | ||
| * Implement generic packet classification capabilities, | * Implement generic packet classification capabilities, | ||
| Line 232: | Line 227: | ||
| * Both the Ethernet Slow Protocols (802.3ad) and ATM specify OAM now for managing carrier-grade networks. | * Both the Ethernet Slow Protocols (802.3ad) and ATM specify OAM now for managing carrier-grade networks. | ||
| * Implement Multi-Protocol Label Switching (MPLS) | * Implement Multi-Protocol Label Switching (MPLS) | ||
| - | * MPLS is widely deployed on Internet network backbones to optimize forwarding and provide advanced IP services. | + | * MPLS is widely deployed on Internet network backbones to optimize forwarding and provide advanced IP services. |
| * AlexanderChernikov has begun work with MPLS implementation on %%FreeBSD%%. | * AlexanderChernikov has begun work with MPLS implementation on %%FreeBSD%%. | ||
| - | * This MPLS implementation is heavily based on netgraph | + | * This MPLS implementation is heavily based on netgraph |
| - | * Modified version of bird routing software is used to provide LDP signalling | + | * Modified version of bird routing software is used to provide LDP signalling |
| * Current project status/ | * Current project status/ | ||
| * MatthewLuckie has begun porting the [[http:// | * MatthewLuckie has begun porting the [[http:// | ||
| Line 243: | Line 238: | ||
| * See http:// | * See http:// | ||
| * This is a 'hot topic' in commercial and academic satellite communications (TCP Performance Enhancing Proxies). | * This is a 'hot topic' in commercial and academic satellite communications (TCP Performance Enhancing Proxies). | ||
| - | * Port the MITRE MiniRouter to %%FreeBSD%%. | + | * Port the MITRE %%MiniRouter%% to %%FreeBSD%%. |
| * This potentially builds on and makes use of SCPS. | * This potentially builds on and makes use of SCPS. | ||
| * See http:// | * See http:// | ||
| * This is a specialist area of research of interest to those in satellite communications. | * This is a specialist area of research of interest to those in satellite communications. | ||
| + | |||
| ===== See also ===== | ===== See also ===== | ||
| - | * [[http:// | + | |
| * NetperfClusterPointers | * NetperfClusterPointers | ||
| + | * TestClusterOneReservations | ||