LWIP Project

From Deos
Jump to navigationJump to search


This effort is in support of the SLS_Program.


Description

This project is for the development of the LWIP (lightweight IP) network stack to DO-178B level D.

Tasks

Initial Budget: $256,159

TTD: $355,079

Current ETC: $31,404

Current EAC: $386,483


Delivery Due Date Estimated Delivery Delivered Percentage Complete
[5] Ip fragment reassembly optimization 14-Sep-07 14-Sep-07 08-Aug-07 100%
[1] Partitioned driver support 21-SEP-07 13-Sep-07 13-Sep-07 100%
Version 1.11.x - aka 1.11+. Early 1.12.0 features 1-Feb-08 1-Feb-08 4-Feb-08 100%
Version 1.13.0 09-Dec-07 29-Feb-08 21-Feb-08 100%
Version 1.15.0(renamed from 1.14.0) - last planned release for lwIP, to be used as the cert candidate 04-Apr-15 04-Apr-15 04-Apr-15 100%
[3] Certification Candidate Release 21-Dec-07 16-Jun-08 17-Jun-08 100%
[5] PCR 4737 (rcvbuf) integration 8-Aug-08 8-Aug-08 ' 100%
[4] Software Accomplishment Summary Release 01-Mar-08 18-Aug-08 Pushed out due to high priority implementation of PCR 4737 100%


Delivery [5] IP reassembly optimization

  • Feature Description: Increase the performance/reliability of the reception of ip fragments. The goal is to receive 50 3k packets/s, as sent using the grs simulator tool.
Task Dependency Assignee Risk Original Estimate Current Estimate Elapsed Remaining
5.1 Do some preliminary groundwork to seek out pre-existing solutions, and engage the community. N/A Tom Taranowski Resource availability 4 4 4 0
5.2 If no adequate pre-existing solutions exist, work up a design. N/A Tom Taranowski Resource availability 8 6 6 0
5.3 Implement the modifications/debug. N/A Tom Taranowski Resource availability 16 18 18 0
5.4 Do performance/robustness testing to ensure that it meets requirements. N/A Tom Taranowski Resource availability 16 12 12 0
5.5 Tune performance as needed. N/A Tom Taranowski Resource availability 16 2 2 0
Totals 60 42 42 0

Delivery [1] Partitioned driver support

  • Feature Description: Fully functional for GRAS project - Allows the user to run level A certified Ethernet drivers
Task Dependency Assignee Risk Original Estimate Current Estimate Elapsed Remaining
1.1 Gap analysis. Determine RTIP features that need to be ported to lwIP to support partitioned drivers. N/A Tom Taranowski Resource availability 8 8 8 0
1.2 Code Development 1.1 Tom Taranowski Resource availability 32 68 68 0
1.3 Acceptance testing 1.2 Tom Taranowski Resource availability 16 10 10 0
Totals 56 86 86 0


Version 1.12.0

Task Status Dependency Assignee Risk Original Estimate Current Estimate Elapsed Remaining
PCR:4718 - Enhanced inetaddr to support multihoming Will be released early in preliminary 1.11+ release. N/A Tom Taranowski Resource availability 40 76 68 0
PCR:4719 - Stack becomes a slack hog on TCP connection establishment Resolved. Determined to be a integration/testing problem. N/A Tom Taranowski Resource availability 12 0 0 0
PCR:4724 - Test Harness Does not Work with LwIP Stack Issues with test harness resolved. No release to lwIP required. N/A John Kimball Resource availability 108 15 15 0
PCR:4722 - select() First Parameter Issue (e.g., gdbserver does not work) Will be released in preliminary 1.11+ release. N/A Tom Taranowski Resource availability 64 12 12 0
PCR:4721 - Mysterious stability issues on GBAS configuration See PCR description. Diagnosed as issue with an error in the application code that the stack did not catch. PCR:4738 N/A Tom Taranowski Resource availability 0 216 0 0
Totals 444 359 359 0

Version 1.13.0

Task Status Dependency Assignee Risk Original Estimate Current Estimate Elapsed Remaining
PCR:4720 - Fragments are dropped under worst case GRAS load Scheduled for release on the 1.12 release date. Estimate adjusted from 108 to 140 worst case on 1/30, based on meeting with SLS N/A Tom Taranowski Resource availability 108 105 105 0
Totals 108 105 105 0

Version 1.15.0(renamed from 1.14.0) test-result driven release

Task Status Dependency Assignee Risk Original Estimate Current Estimate Elapsed Remaining
Ad hoc testing N/A N/A Tom Taranowski none, customer testing is complete. Need to roll the release into cygwin and then do a quick retest to ensure the release is correct. 40 74 74 0
Totals 40 74 74 0

IGMP analysis

Task Status Dependency Assignee Risk Original Estimate Current Estimate Elapsed Remaining
IGMP testing N/A N/A Tom Taranowski Dropped due to GRAS project status. 40 40 20 0
Totals 40 40 20 0

Delivery [3] Certification Candidate Release

  • Feature Description: Sufficient verification steps complete to achieve high confidence executables will not need further changes.

The following was taken from comments made by John Riedmann:

The strategy for DO-178B level D activities is that we'll use the same procedures as for DO-178B level A, but we won't perform all of those procedures (for example, because code reviews aren't required for level D). So instead of being a different process for level D, it's really just a subset of the level A process. The only DO-178B plan documents we expect to update is the PSAC, and Appendix C, which shows which DO-178B objectives we'll satisfy for level D, and whether we'll satisfy them with independence. The only procedure we expect to update is the integration review checklist.

Development and Review Status Summary

Note: Unless noted otherwise, all estimates below are in terms of effort hours.

Task Dependency Assignee Risk Original Estimate Current Estimate Elapsed Remaining
3.1 DO-178B Plan updates PCR 4363 N/A John Riedmann Resource availability 40 40 11 0
3.2 Requirements Development - - There will be 1 level of requirements based on the socket interface defined by the level A Socket API Library. Trace tags will be included. Protocol-based requirements may be added depending on customer needs. N/A Tom Taranowski
G Craig Johnson
Resource availability 336 433 418 15
3.3 Code Development - No need to comply with our coding standards, and no need for trace tags. See the Network_Project for details. 3.2 Tom Taranowski Resource availability 136 263 260 0
3.4 Software life cycle audit #1 3.2, 3.3 Kelly Leonard None 16 13 13 0
3.5 Test Case Development 3.2 Uzeir Karagic Resource availability 152 877 877 0
3.6 Test Procedure Development 3.2, 3.5 Uzeir Karagic, Dipesh Pokhrel Resource availability 304 1004 999.5 0
4.1 Requirements review 3.2 John Riedmann Resource availability 165 165 154.5 0
Totals 1149 2792 2686 0

Delivery [5] PCR 4737 release

  • Feature Description: Includes implementation of PCR 4737, rcvbuf fix.
Task Dependency Assignee Risk Original Estimate Current Estimate Elapsed Remaining
backport rcvbuf fixes from 1.3 baseline Thomas Taranowski 1.3 baseline does not port cleanly 16 16 16 0
requirements and test updates Thomas Taranowski, independant reviewer 32 32 32 0
customer integration customer not ready to integrate Thomas Taranowski, Chris Pow 40 40 40 0
Totals 88 88 88 0

Delivery [4] Software Accomplishment Summary Release

  • Feature Description: Indicates all verification steps complete.
Task Dependency Assignee Risk Original Estimate Current Estimate Elapsed Remaining
lwIP configuration how-to and user documents Thomas Taranowski None 20 30 - increased 2 hours for milestone[5] pcr4737 implementation 30 0
4.2 Software life cycle audit #2 and #3 4.1 Kelly Leonard None 16 16 16 0
4.3 Requirements coverage analysis - To show test coverage of requirements only; no tracing of code to requirements. 4.1 Tom Taranowski Resource availability 40 3 - increased 1 hour for milestone[5] pcr4737 implementation 2 2
4.4 Conformity inspection - SQA build Witness 4.3 Kelly Leonard None 8 8 8 0
4.5 Integration review - No need to complete section on compiler identification and ABC-compliance. 4.4 Uzier Karagic + Kelly Leonard None 8 8 2 0
4.6 Run for score, including SQA witnessing, and test results review 4.4 Tom Taranowski, Kelly Leonard Issues with test reproducibility on different workstations 8 32 - increased 4 hours for milestone[5] pcr4737 implementation 51.5 -12
4.7 Verification audit 4.6 Kelly Leonard None 16 16 8 0
4.8 Certification documents: SAS, SLCECI, SCI 4.6 John Riedmann Resource availability 40 40 30 10
4.9 Population of certification archive (PCA) 4.6 Tom Taranowski Resource availability 8 8 8 0
4.10 Software conformity audit 4.9 Kelly Leonard None 16 16 8 0
Totals 325 178 163.5 0

Metrics

Task Metric Notes
Requirements Development 418 hours to develop 109 requirements = 8 hours/req. Requirements were derived from existing API documentation (posix standard). Includes time to incorporate peer comments and fixes, as well as build updates.

Future stuff

In order to focus future effort, and acquire funding to keep the network stack viable, we are documenting future needed enhancements here.

Projects we want to implement

Item Dependancy Rationale Time estimate PCR
rtip replacement release misc tasks (do we update training material in first pass?) none need to replace rtip with lwIP. 80 Temporary increase in support commitment, requires other task completion. PCR 5145
Port up to 1.3 baseline none Needed to track stack enhancements, and tap community for fixes and enhancments 24 PCR 5145
Increase socket API robustness by fixing up issues with API 1.3 port reduces code development time for customers 80 misc
Test/debug lwIP with vmware e1000 driver none vmware support, needed for general rollout 16 PCR 4628
Test/debug ppc support none Needed to support general rollout 40 PCR 4362
Open source test suite none Reduce long term maintenance costs, and increase stack quality 80
lwIP specific driver none increased driver performance, eliminates shim layer code and context switch overhead, simpler implementation 160 hours to adapt current driver, and stack mods
The waterline -- items above this line are critical to the long-term viability of the stack.
socket API enhancements (recvall, sendall, send/recv to/from MO or PR Increase efficiency of large file transfer, simplify user code 80
argc, argv support. latest kernel argc and argv support allows easier runtime specification of operating parameters. 80
snmp subagents none SNMP is typically required to manage larger networks 160

Other considerations

  • ftpserver
    • neglected. Needs to be versatile enough to avoid user forks
    • users complain about performance, implementation of custom lwIP socket API would greatly enhance performance
  • driver development
    • how to standardize on driver implementations. Do we need a driver development guide, or is an 'official' example enough. Will come into play when lwIP specific drivers are implemented.
    • Current driver development is expensive because of level A requirement. Kernel DMA capabilities would eliminate this requirement. May not save money, because future users will likely want a certified driver/stack combination
  • stack certification
    • Plan is to revert to level E after SLS.
    • What are the impacts of making level E releases after a certified release (level D)
    • Should we 'encourage' higher DAL releaeses on a customer requested basis? Seems like they would be cheap after our initial work on the requirements and test development.
  • lwIP rollout
    • No current plans to migrate RTIP users to lwIP.
    • New projects should prefer lwIP
    • Can we get schedule/buddget to commit to a timeline?
  • Upcoming projects
    • AGM - simple requirements. Need high performance ftp.
    • CMU - 4 drivers. Project anarchy.