Skip to content

Conversation

@catherinemeadows
Copy link
Contributor

Modified the Scaling Example NF to assign spawned children with the same service ID as the parent and updated the README with more detail about callback and advanced rings modes.

  • addressed issue 250

Summary:

Usage:

This PR includes
Resolves issues 250
Breaking API changes
Internal API changes
Usability improvements
Bug fixes
New functionality
New NF/onvm_mgr args
Changes to starting NFs
Dependency updates
Web stats updates

Merging notes:

  • Dependencies: None

TODO before merging :

  • PR is ready for review

Test Plan:

  • tested NF in a chain (speed tester -> scaling -> basic monitor) to verify correct packet flow

NoahChinitz and others added 4 commits December 2, 2021 01:47
Changes the source IP address in ARP reply from CPU byte ordering to BE.

Commit log:
* ARP endianess fixed
Release of ONVM v21.10
@twood02
Copy link
Member

twood02 commented Mar 17, 2022

@catherinemeadows
Can you remind me -- Is the idea of this NF that it spawns N child NFs all with the same service ID as the "main" NF that started initially. Packets are then distributed across the N+1 NFs. All of these NFs then forward packets to whatever destination ID was set on the command line.

Is this right? Or does the main NF not actually have a run loop so there are N nfs total receiving packets (only the children)?

@catherinemeadows
Copy link
Contributor Author

@twood02 Yes, the parent NF spawns N children NFs with the same service ID and the packets are distributed across the N+1 NFs and forwarded to the destination ID. Should I add this to the documentation?

Copy link
Member

@twood02 twood02 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good to me

@twood02
Copy link
Member

twood02 commented Mar 21, 2022

@NoahChinitzGWU can you build and run this code on one of your systems to verify it is working as expected? Post a screenshot/paste the output here

@twood02 twood02 requested a review from NoahChinitz March 21, 2022 19:32
@NoahChinitz
Copy link
Contributor

Manager:
Screenshot from 2022-03-21 17-32-06

Scaling NF Left Terminal, Monitor NF Right Terminal:
Screenshot from 2022-03-21 17-32-30

Does this seem correct, or should I be seeing 3 additional scaling NFs in the manager?

@catherinemeadows
Copy link
Contributor Author

They should scale once you send packets to it (you can use speed tester)

@NoahChinitz
Copy link
Contributor

Manager:
Screenshot from 2022-03-21 17-44-17

Works!

@NoahChinitz
Copy link
Contributor

NoahChinitz commented Mar 21, 2022

Screenshot from 2022-03-21 17-45-01

NFs used (scaling left, basic monitor middle, speed tester right)

Copy link
Contributor

@NoahChinitz NoahChinitz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See my previous comments for screenshots of working output

@twood02
Copy link
Member

twood02 commented Mar 21, 2022

@dennisafa - can you do a very quick review and approve this if nothing jumps out at you?

Copy link
Member

@dennisafa dennisafa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes look good to me. Unrelated to the bug itself, I think it would make sense to do the scaling differently. Right now, we spawn the child NF's as soon as we receive a packet in the packet_handler_with_scaling() function. The new NF's packet handler is then set to packet_handler_fwd(). Why not spawn all of the child NF's upon startup, rather than wait for the first packet? The current implementation would make more sense if we were spawning the child NF's based on say, the packet count/rate.

@catherinemeadows catherinemeadows merged commit f5c5fcc into sdnfv:develop Mar 28, 2022
twood02 added a commit that referenced this pull request Aug 3, 2022
Merge branch 'develop' of https://github.com/sdnfv/openNetVM into jettjacobs-docs
* 'develop' of https://github.com/sdnfv/openNetVM:
  Python Script Update (#325)
  LB Adjustments; Run without mTCP (#322)
  Fix incorrect comment (#323)
  Scaling Example NF Updates (#321)
  ONVM 21.10
  [Bug Fix] speed_tester jumbo frames crash fix (#316)
  [Bug Fix] ARP endianess fixed (#317)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants