Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

General improvements for Click compatibility #17

Open
achimnol opened this issue Aug 4, 2015 · 3 comments
Open

General improvements for Click compatibility #17

achimnol opened this issue Aug 4, 2015 · 3 comments
Assignees

Comments

@achimnol
Copy link
Member

achimnol commented Aug 4, 2015

For our Retro-Click project, this issue collects commits related to general improvements for Click compatibility.

Examples:

  • Uniquefying / cloning of packets:
    There are several core use cases of cloning packets and pushing them to multiple output elements, such as TCP/IP fragmenter and switching logic.
    However, the current NBA only allows pushing to only one element by returning the output port index, because it is easier to batch by storing those return values in a single array and we have targeted only a "receive-process-and-forward" type of workloads.
    Let's make a design to allow cloning packets and passing them to multiple different elements.
  • Output port selection in elements
    NBA has used return values to determine the output port selection for each packet in an element.
    Change it to Click-like output(n).push(pkt);.
achimnol added a commit that referenced this issue Aug 8, 2015
 * They will be appended to out_batches in the ElementGraph.

 * Pose a restriction that a packet can be pushed to a single output
   only; to push to multiple outputs, you need to clone the packet.

 * Next TODO: rewrite branching logic.
achimnol added a commit that referenced this issue Aug 8, 2015
@hyeonseop-lee
Copy link
Contributor

Packet::uniqueify() seems to be implemented to maintain compatibility with Click, however it simply returns nullptr. I think it should behave same as Packet::clone(), so elements following Click's convention can run in NBA.

Please check codes here.

@achimnol
Copy link
Member Author

@protos37: It's just not done yet. :)

@achimnol
Copy link
Member Author

@protos37: And now you have write access to this repository. Feel free to make branches and PRs.

@achimnol achimnol self-assigned this Aug 21, 2015
@achimnol achimnol changed the title Add capability to clone packets and pass to multiple elements General improvements for Click compatibility Sep 16, 2015
@achimnol achimnol assigned hyeonseop-lee and unassigned achimnol Oct 14, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants