-
Notifications
You must be signed in to change notification settings - Fork 17
Append and delete configuration #421
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
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this 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.
From code snippet it appears that traffic-stop is required before starting the appended/deleted flow, if there are already some running flows. So, after adding the new flows we need to do start transmit again (this was not obvious). As a consequence, the previous traffic's stats will get reset and in the next stat-fetch we will see old existing stats are starting from beginning. This is also not obvious from the document. May be implicit from the script but not explicit. Suggestion
As a user I want to write as little code as possible. So, make the stop traffic implicit when starting the new flow, with a warning that previously running flow's stats will be reset. |
@abhijit-dhar Added a note with regard to the traffic state. |
Issue #409
Redocly View:
Config:
https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/open-traffic-generator/models/dev-append-delete-config/artifacts/openapi.yaml&nocors#tag/Configuration
Objectives:
There is a long pending request for support for appending and deleting configuration resources to existing configuration.
One such end use case is when we want to provide support for multiple endpoint for traffic. At present, due to maximum stream limitation per port, we can not support RSVP traffic with 64K LSPs or 1000s of DHCP clients with address field set as auto ( not known before running DHCP) . With multiple endpoint support in same flow configuration, we can pack multiple LSPs into one stream.
Furthermore, in such a scenario, resolving "auto" mode for LSP fields for multiple sub-streams, which involves learning LSP data and then internally crafting all the sub-streams into a composite data pattern. This becomes complex to implement and difficult for end user to follow and have control over.
The simplest approach is to be able to allow user to configure and start protocol, then collect control plane parameters
like MPLS label, DHCP IPs etc. Finally these learned information can then be used to define and configure the sub-flows,
likely for a full mesh traffic endpoints. User can then append the traffic portion of the configuration and start the traffic.
Another use case is to provide flexibility to user to configure and run batches traffic streams one after another, after
removing the previous batch of streams for the same running protocol endpoints. Append config in conjunction with delete
config can be used as outlined in the examples below.
In some cases, the contents of the flows to be created are just not known when creating the initial config. This PR also handles these usecases
e.g. open-traffic-generator/ixia-c#56 (comment)
Note: This PR addresses appending and deleting configuration of resource type flows only for our initial delivery. How we would
like to append / delete other resource types in future is addressed in this PR.
Also note, the append / delete (flow) configuration APIs will expect all traffic to be in stopped state. Any running flow will be implicitly stopped and a warning returned with these new API calls. User will then have to explicitly start the stopped flows, which will result in stats reset.
Sample Code Snippet