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

routing-policy: new explicit action and behaviour clarification #973

Closed
wants to merge 2 commits into from

Conversation

rszarecki
Copy link
Contributor

@rszarecki rszarecki commented Oct 11, 2023

This PR:

  • Adding new option for policy statement action "NEXT_STATEMENT".
  • Defining default policy statement action as REJECT, if leaf is omitted in setRequest.
  • Clarify behaviour if given route is not explicitly accepted or rejected in
    any of statement of any of policies on the list";

This is (potentially) breaking change due to introduction of defaul value.

Platform Implementations

The are subtele differences among implementations

JUNIPER JUNOS: Actions in Routing Policy Terms

[edit policy-options policy-statement policy-name term term-name]
then {
   accept|reject|next-term;
}

Mapping to this proposal. The * indicate implicit default action.

This proposal JUNOS
ROUTE_ACCEPT accept
ROUTE_REJECT* reject
NEXT_STATEMENT next-term*

Note: JUNOS support few more flow-controll actions

CISCO IOS-XR: Polixy Statement disposition

Mapping to this proposal. The * indicate implicit default action.

This proposal IOS-XR RPL
ROUTE_ACCEPT N/A *
ROUTE_REJECT* drop*
NEXT_STATEMENT N/A ("pass" is similar but not exact)

Note:

  • IOS-XR do not have explicit equivalent of OpenConfig ROUTE_ACCEPT. If statement is modifying any route attribute, route is implicitly accepted and no further statement are evaluated. If statement do not modify any attribute, route is implicitly dropped.
  • IOS-XR "pass" is similar to OpenConfig NEXT_SATEMENT, except it mark route as t"conditionally accepted" if not rejected by subsequent statement.

ARISTA EOS Route Maps

Mapping to this proposal. The * indicate implicit default action.

This proposal IOS-XR RPL
ROUTE_ACCEPT permit
ROUTE_REJECT* deny
NEXT_STATEMENT continue

Note:
The "permit" or "deny" are mandatory, hence ther is no implicit action. When "continue" also present, action of highes matching statement is applied.

@OpenConfigBot
Copy link

OpenConfigBot commented Oct 11, 2023

Major YANG version changes in commit 13e1882:

@OpenConfigBot
Copy link

OpenConfigBot commented Oct 11, 2023

Compatibility Report for commit 13e1882:
pyangbind@1b7ee10

@rszarecki
Copy link
Contributor Author

Subject to discussion. This proposal make REJECT as implicit implicit default action, which is considered safer behaviour.
Alternative would be NEXT_STATEMENT.

I'm seeking for opinions and comments in this area.

@rszarecki rszarecki changed the title new explicit action and behaviour clarification routing-policy: new explicit action and behaviour clarification Oct 11, 2023
@dplore
Copy link
Member

dplore commented Oct 12, 2023

Great minds think alike, see #949

@rszarecki rszarecki closed this Oct 12, 2023
@rszarecki rszarecki deleted the Policy-actions branch October 16, 2023 14:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

3 participants