Comments (1)
Discussion on adding new attributes in ero object of RSVP-TE tunnel :
Currently the ERO object in a RSVP tunnel has following attributes:
prepend_neighbor_ip -> Default : dont_prepend ; optional
prefix_length -> applicable only if prepend_neighbor_ip is 'prepend' : optional
array of subjobjects with type / hop_type and as_number or ipv4_address + prefix_length , applicability depending on type.
With auto mode, we need to at minimum add a choice whether ero is manual ( default : where user provides contents of ERO ) or new auto mode where ERO is calculated based on IGP TE learned information ( auto : non-default mode )
i.e. if choice = manual (default) , existing fields should continue to behave as earlier.
prepend_neighbor_ip -> Default : don_prepend ; optional
prefix_length -> applicable only if prepend_neighbor_ip is 'prepend'
array of subjobjects with type / hop_type and as_number or ipv4_address + prefix_length , applicability depending on type.
if choice = auto ( user specifies as non-default )
All the above fields prepend_neighbor_ip , prefix_length and subobjects are no longer applicable
Few 'auto' attributes additional control attributes planned to be added later with more specific user controls
e.g. tie-break criterion ( max-bandwidth / min-bandwith /random )
Design choices
A) Handle via documentation and behavior :
prepend_neighbor_ip , prefix_length and subobjects -> Add documentation that these fields are applicable only if choice = 'manual'
Advantage : Backward compatible.
ero.choice = 'manual/auto'
ero.prepend_neighbor_ip , ero.prefix_length and ero.subobjects -> Stays as is and documentation added to indicate applicability only for manual mode.
ero.auto.tie_break (future) and other fields added for addition control of ERO in auto mode.
ero.auto.other_attrib (future)
B) Group current attributes inside a 'manual' -> Breaks backward compability . Little more obvious which parameters are for which mode.
ero.choice = 'manual/auto'
ero.manual.prepend_neighbor_ip
ero.manual.prefix_length
ero.manual.subobjects
ero.auto.tie_break ( future)
ero.auto.other_attrib (future)
C) Keeping both existing attributes and add new attributes to provide deprecation.
ero.choice = 'manual/auto'
ero.manual.prepend_neighbor_ip
ero.manual.prefix_length
ero.manual.subobjects
ero.prepend_neighbor_ip ( deprecated)
ero.ero.prefix_length (deprecated)
ero.subobjects (deprecated)
ero.auto.tie_break ( future)
ero.auto.other_attrib (future)
Only if ero.manual optional object is missing and mode is set to manual then only the deprecated elements
ero.prepend_neighbor_ip , ero.prefix_length and ero.subobjects will be used to create the manual ERO.
Remove the three deprecated attributes in future OTG version after couple of sprints after initial release with new OTG with auto mode support for ERO.
As of now, the PR reflects option A) .
from models.
Related Issues (20)
- ATE Feature: MacSec support for ethernet interfaces
- ATE Feature: Autoconfiguration for IPv6 interfaces
- ATE Feature: Set Router Capability ID for IS-IS routers
- ATE Feature: IS-IS Segment Routing
- ATE Feature: IS-IS Simulated Node Topology
- ATE Feature: DHCP client/server protocols
- ATE Feature: Support More BGP Route Attributes HOT 1
- ATE Feature: BGP Route Import
- ATE Feature: Support more protocol control packet headers
- Refactor Control API
- Document the intended sequence of API calls for common scenarios
- Duration & Burst parameters need to be int64
- Addition of proper description to bgp extended community and addition of isis names in tx names of transmitting emulated devices HOT 1
- Allow otg BGP implementation to report FSM states. HOT 1
- BGP Notifications sending from otg tools HOT 1
- Some API descriptions need to document the cause of warnings as part of response
- Remove under_review warnings from stdout when otg test runs for objects for which review has already completed HOT 1
- BGP Graceful Restart capabilities HOT 5
- Metrics response disaggregation based on Rx ports
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from models.