-
Notifications
You must be signed in to change notification settings - Fork 659
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
Add ingress policer to qos overview #1190
base: master
Are you sure you want to change the base?
Conversation
No major YANG version changes in commit 3f91434 |
@robshakir ready for your re-review |
I don't think this is the appropriate way to describe a canonical ingress policer. While the scheduling typically supports rate-limiting mechanisms, in many implementations, there are separate policer entities (often implemented in HW) that are independent of schedulers; i.e., those are two different mechanisms. The fake queuing/ingress scheduling approach feels more like a workaround for implementations where true ingress policers are not available (or they never implement "real" ingress scheduling and can perform this config translation into policing in native yang/cli model). In my view, the clearer approach is to introduce a new hierarchy to be used specifically to define standalone policers (e.g. |
@robshakir Ready for your next review |
`ONE_RATE_TWO_COLOR` policer. | ||
|
||
In this scenario, the device has a VOQ architecture is does not have hardware | ||
or software to implement in ingress queue. To satisfy the OC schema |
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.
or software to implement in ingress queue. To satisfy the OC schema | |
or software to implement in ingress queue. To allow a consistent representation to be used across different architectures |
}, | ||
"terms": [ | ||
{ | ||
"term": null, |
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.
Not sure what this term
field that is set to null
is -- the JSON here seems incorrect:
{
"qos": {
"classifiers": {
"classifier": [
{
"name": "Dest_A",
"config": {
"name": "Dest_A"
},
"terms": {
"term": [
{
"id": "foo"
}
]
}
}
]
}
}
}
I suggest that this is generated using pyangbind, ygot, or your-favourite-YANG-thingy -- you can also write it by hand and validate it using something like govalidate
(although this needs some maintenance to add some new modules and update the docs).
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.
FYI, the above JSON validates:
[2:47] robjs@aardvark:oc-tools/validate/govalidate master ✔ 242d ⚑ ◒ ⍉
▶ ./govalidate -fn foo.json && echo $?
0
], | ||
"queues": [ | ||
{ | ||
"queue": null, |
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.
Same problem here as in classifiers
.
# and are associated with the dummy queue they are servicing. | ||
"scheduler-policies": [ | ||
{ | ||
"scheduler-policy": null, |
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.
Ditto, same issue w.r.t a list that is being set to null
.
Adding documentation on how to use the
/qos
model to create an ingress policer