A second great networking opportunity
Posted by Steve Revill Fri, 18 Feb 2022 16:56:00 GMT
Following the success of step 1 of the TCP/IP stack overhaul, we’ve been watching with interest as over one hundred community donations have filled our step 2 bounty pot almost to the brim. Today we’re able to announce that the bounty has been claimed and under way.
Bounty goals
In this second step our project will:
- Replace the Internet module
- Supporting IPv4, with the foundations laid for WiFi (step 3 of 4) and IPv6 (step 4 of 4)
- Being ready, where feasible, for multiple processor cores
- Replace the TCP/IP libraries
- New disc based tools inside the !Internet resource application
- Delivering a consistent BSD sockets interface to applications
- Makes porting code from other systems easier
- Makes testing easier
- Speed improvements
- Through reduced time spent copying data between buffers
- Through changes to the execution model
- Clear developer documentation
- Communicating progress to the users and developers alike
See the bounty description if you’re interested in reading the technical ins and outs.
Safeguarding the past, present, and future
Recognising that the 2nd most popular platform (after the Raspberry Pi) is the Risc PC (aka “IOMD”) port, we set that as the minimum spec system supported by RISC OS 5. Components may be softloaded over the past ROM-based ones on the computers themselves, or included in the nightly builds of the RISC OS 5 image if loaded via emulation.
The network stack has its tentacles in all manner of components at the heart of RISC OS, even those which aren’t related to networking. For example, they may make use of some of the same header files in the source code. To minimise disruption for extant applications and modules, our plan is to base this work on FreeBSD – just as the present network stack is. Developers should already be familiar with the extra API coverage from RFC2553 because these were rolled out in August 2018.
Once these foundations are in place, the system-wide WiFi and IPv6 features will be built through bounties.
Please note: we are aware that separate RISC OS network stack development work has been under way for some time to support commercial use in a specific vertical market, which has some overlaps with the deliverables of this programme. We believe the approach taken in this bounty will yield the broadest possible level of compatibility to this Open Source initiative.
Key events to watch out for
Very little of this work will have any noticeable impact on normal users of RISC OS. Some benefits will appear in RISC OS 5.30, while the bulk will come later, through the 5.31 beta development stream.
Developers should note the old Internet 4 (pre-1996) support is scheduled for removal during these works. This affects around twenty components in RISC OS itself, these will be migrated to Internet 5 over the coming weeks such that support can be phased out of the existing sources in the first quarter of 2022.
Existing applications will continue to run on the current stable release, RISC OS 5.28 but will need to make sure they’re using the Internet 5 calls ahead of RISC OS 5.30, which is slated for release later in 2022. Watch out for more details on how to rebuild your code if you’ve been using the COMPAT_INET4
option.
It’s great to see work starting on this.
I also look forward to the release of 5.30!