-
Notifications
You must be signed in to change notification settings - Fork 156
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
Release v0.6.0 #487
Merged
Release v0.6.0 #487
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Now all flows have flexible number of intermediate rings which depends on RSS queues number. Packets for same sessions follow exact same routes. Scheduler now has one more notion - flow function instance (ffi), main concepts of new scheduler are: 1) Flow Function - covering structure, includes name, working function, parameters, user contexts and other general information. Different flow functions are completely different and can't be compared to each other. 2) Flow function instance - structure for working at different RSS flows. Contains determination of current RSS flow. Instances of one flow function are absolutely independent: different cores, mempools, input/output rings and handled sessions. 3) Instance clone - structure for one process that is done useful work. Contains determination of core and start/stop/report flags/channels. Clones of one instance work at different cores. However they are not independent: They share input/output rings, high level protocol sessions and lines in various tables. Added new user options: RestrictedCloning - forbids scheduler to add more that one clone per instance which can result to reordering MaxInIndex - limits instance number per flow function. Can various from 1 to RSS restriction Changed constants: As now we have one mempool per each instance we limit default size: mempool - 8191 instead of 4*8191 ring - 64 * burstSize instead of 256 * burstSize Details: Each flow has constant number of parallel rings. Flows which started with receive have MaxInIndex parallel rings Other flows like KNI, generate, PCAP read have 1 parallel ring Merge will merge parallel rings by their numbers: flows with 1 and 16 rings will merge as first to first ring Basicaly all functions have one instance and one clone. This instance handles all input parallel rings. If some function can't handle input flow scheduler will add additional instance and divide input parallel rings like half and half. If there is only on input ring and instance still can't handle it scheduler will add clones (if this is permitted by user). Pluses: No reordering, flow locality No locks for the same lines per session in any intermediate tables Can reassemble high level protocols like TCP or HTML Faster scheduler (working independently with each instance) Minuses: Memory usage for additional mempools and rings.
Increased number of rings between Flow Functions based on RSS
Switched to virtio network cards in VMs because they are the most stable
Fixed pktgen URL and directory after dpdk site redesign
Hotfix 0.4
Added speed regulation to generator, ability to generate imix, fixed errors
Made debug build mode through makefile
Refactored packet initialization to remove duplicate code.
Fix number of report channels
Fix for generate speed report
Added assertion about minimal generate target speed
Fixed debug compilation
Extracted API for generator creation to get packets back.
Extracted generator to examples, updated readme, renamded generator
Fixed generator performance problems
Scheduler fix
Trivial version bump for fedora image
Fixed docker images build
Implemented DHCP client functionality to acquire IPv4 address
Only supported RSS types
* [devices] move devices package from crimea to nff-go * [devices] add a devbind example
- Implemented Neighbor Discovery responce to neighbor solicitation message - Implemented Neighbor Solicitation and Advertisement messages for IPv6 - Implemented port forwarding to IPv6 addresses - Implemented IPv6 packets forwarding to KNI interfaces - Implemented DHCPv6 - Added missing IPv6 support to GRPC configuration - Fixes for DHCPv6 and KNI interopration - Set local addresses on KNI interfaces when they are received from DHCP or set by GRPC. - If KNI is present, all forwarded traffic directed at local IPs is directed to KNI now, so port forwarding with zero address is kinda obsolete now. - Fixed checksum and icmpv6 tests
Implemented IPv6 NAT with DHCPv6, ND and port forwarding
Changed ICMPv6 checksum calculation to be consistent with other checksum calculation functions. Now it is not necessary to zero out checksum field in the header before calling checksum calculation.
Fixed CI tests on ICMPv6 checksums
Signed-off-by: Lehner Florian <dev@der-flo.net>
Add functions for MPLS
Removed NAT example because it is moved to nff-go-nat repository
Added go.mod for dependency tracking
Signed-off-by: Lehner Florian <dev@der-flo.net>
Upgrade DPDK to version 18.08
Use new MPLS functions
#478 fixed.
Added proxy to dnf.conf config file
aregm
approved these changes
Oct 4, 2018
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
New NFF-Go release version 0.6.0