Support IP deserialization when PACKET_IN carries Ethernet FCS

Some switches carry Ethernet FCS in the PACKET_IN.
In that case, Ethernet FCS should not be treated as IP payload.

payload length: the length specified in IP header
remaining length: the actual remaining bytes
    payload < remaining: padding or Ethernet FCS exists, use payload length
    payload = remaining: usual case, use either one
    payload > remaining: fragmented packets, use remaining length

In addition,
    - Fix unit test. TotalLen should never be smaller than headerLen * 4
    - Refactoring unit tests

Change-Id: I5d4736ad89ea2ab4ac3bd0cfaeb91da5d974db64
3 files changed
tree: 26e3f9e60da8b96e996355eeb76fef10f6615ac3
  1. .buckconfig
  2. .dockerignore
  3. .gitignore
  4. .gitreview
  5. BUCK
  6. Dockerfile
  7. Jenkinsfile
  8. LICENSE.txt
  10. apps/
  11. buck-tools/
  12. bucklets/
  13. cli/
  14. core/
  15. docs/
  16. drivers/
  17. features/
  18. incubator/
  19. lib/
  20. models/
  21. modules.defs
  22. onos.defs
  23. pom.xml
  24. protocols/
  25. providers/
  26. tools/
  27. utils/
  28. web/

ONOS : Open Network Operating System

What is ONOS?

ONOS is a new SDN network operating system designed for high availability, performance, scale-out.

Top-Level Features

  • High availability through clustering and distributed state management.
  • Scalability through clustering and sharding of network device control.
  • Performance that is good for a first release, and which has an architecture that will continue to support improvements.
  • Northbound abstractions for a global network view, network graph, and application intents.
  • Pluggable southbound for support of OpenFlow and new or legacy protocols.
  • Graphical user interface to view multi-layer topologies and inspect elements of the topology.
  • REST API for access to Northbound abstractions as well as CLI commands.
  • CLI for debugging.
  • Support for both proactive and reactive flow setup.
  • SDN-IP application to support interworking with traditional IP networks controlled by distributed routing protocols such as BGP.
  • IP-Optical use case demonstration.

Checkout our website and our tools