YANG ¡Data ¡Models ¡for ¡TE ¡and ¡RSVP ¡ ¡Tunnels ¡and ¡Interfaces ¡ ¡ dra;-‑saad-‑teas-‑yang-‑te-‑00 ¡ dra;-‑saad-‑teas-‑yang-‑rsvp-‑00 ¡ ¡ Tarek ¡Saad ¡(Presenter) ¡and ¡Rakesh ¡Gandhi, ¡Cisco ¡Systems ¡ Vishnu ¡Pavan ¡Beeram, ¡Juniper ¡Networks ¡ Xufeng ¡Liu, ¡Ericsson ¡ Himanshu ¡Shah, ¡Ciena ¡ Xia ¡Chen, ¡Huawei ¡Technologies ¡ Raqib ¡Jones, ¡Brocade ¡ IETF-92, March 2015, Dallas
Agenda ¡ • ObjecRve ¡and ¡scope ¡ • Progress ¡update ¡ • Discussion/Next ¡steps ¡
MoRvaRon ¡ A ¡design ¡team ¡spun ¡off ¡post ¡IETF91 ¡to ¡ • Coordinate ¡efforts ¡and ¡converge ¡on ¡a ¡unified ¡YANG ¡models ¡for ¡ TE, ¡RSVP ¡and ¡RSVP-‑TE ¡ • Define ¡a ¡modular ¡structure ¡for ¡TE, ¡RSVP ¡and ¡RSVP-‑TE ¡YANG ¡ models ¡ • Define ¡submodules ¡that ¡hold ¡reusable ¡type ¡definiRons, ¡derived ¡ types, ¡and ¡groupings ¡(e.g. ¡for ¡packet/MPLS) ¡
Proposed ¡MPLS ¡Yang ¡Module ¡ Structure/Hierarchy ¡ + ietf-mpls-base.yang Base ¡MPLS ¡TE ¡data ¡model ¡ + -- ietf-mpls-te-base.yang + -- ietf-mpls-te-rsvp.yang Base ¡MPLS ¡RSVP-‑TE ¡data ¡ + -- ietf-mpls-tp.yang model ¡ + -- ietf-mpls-te-sr.yang + -- ietf-mpls-static.yang + -- ietf-mpls-ldp.yang . ¡. ¡. ¡ ¡ + ietf-mpls-base-types.yang | + -- ietf-mpls-te-types.yang Reusable ¡MPLS ¡types ¡and ¡ groupings ¡ + -- ietf-mpls-sr-types.yang + -- ietf-mpls-ldp-types.yang
Proposed ¡MPLS ¡Yang ¡Module ¡ Structure/Hierarchy ¡ + ietf-mpls-base.yang Base ¡TE ¡data ¡model ¡ + -- ietf-te.yang + -- ietf-te-rsvp.yang +-- ietf-te-mpls-rsvp.yang Base ¡RSVP-‑TE ¡data ¡model ¡ +-- ietf-te-otn-rsvp.yang + -- ietf-mpls-te-sr.yang Packet/MPLS ¡RSVP-‑TE ¡ module ¡ ... + ietf-routing + -- ietf-rsvp.yang . ¡. ¡. ¡ ¡
In ¡Scope ¡ • Base ¡TE ¡YANG ¡model ¡ • Base ¡RSVP ¡YANG ¡model ¡ • Base ¡and ¡packet/MPLS ¡RSVP-‑TE ¡ ¡YANG ¡model ¡ • Extensions ¡to ¡Base ¡TE ¡for ¡SPRING ¡Segment-‑RouRng ¡TE ¡and ¡ MPLS-‑TP ¡
Progress ¡Update ¡ • Weekly ¡recurring ¡meeRngs ¡since ¡IETF91 ¡ • Work-‑in-‑progress ¡code: ¡ – Maintained ¡in ¡Github: ¡h`ps://github.com/iea-‑mpls-‑yang ¡ – May ¡migrate ¡to ¡IETF ¡work-‑in-‑progress ¡repository: ¡ h`ps://github.com/YangModels/yang/ ¡once ¡the ¡group ¡decides ¡ ready ¡ • Wiki: ¡ h`ps://github.com/iea-‑mpls-‑yang/te/wiki/MPLS-‑TE-‑YANG ¡
TE/RSVP ¡YANG ¡Modules ¡ iea-‑te-‑mpls-‑types.yang ¡ Structure ¡and ¡RelaRonship ¡ iea-‑mpls-‑base.yang ¡ iea-‑te-‑types.yang ¡ iea-‑te-‑ topology.yang ¡ iea-‑rsvp.yang ¡ iea-‑te.yang ¡ augment ¡ iea-‑te-‑rsvp.yang ¡ iea-‑te-‑spring.yang ¡ import ¡ submodule ¡ module ¡ iea-‑te-‑mpls-‑rsvp.yang ¡ iea-‑te-‑otn-‑rsvp.yang ¡
TE ¡YANG ¡Data ¡Model ¡ High-‑level ¡Structure ¡ module: ietf-te rpcs: +---x tunnels-rpc +-te! +---x lsps-rpc +--rw tunnels +---x global-rpc ... +---x interfaces-rpc +--rw interfaces notifications: +---n tunnels-notif ... +---n lsps-notif +--rw globals +---n interfaces-notif ... +---n global-notif +--ro tunnels-state +--ro lsps-state +--ro interface-state +--ro global-state
TE ¡Data ¡Model ¡ ¡ TE ¡Globals ¡and ¡Interfaces ¡(config) ¡ module: ietf-te +--rw interfaces | +--rw interface* [interface] +--rw te! | +--rw interface +--rw globals if:interface-ref | +--rw interface-named-admin-groups * [name] | +--rw named-admin-groups * ... | +--rw named-srlgs * [named-srlg]? | +--rw switching-capabilities * | +--rw interface-named-srlgs * [name] | +--rw te-metric ? ... | +--rw affinities | +--rw explicit-paths * [name] | | +--:(admin-groups) ... | | +--:(extended-admin-groups)? | +--rw path-named-constraints * [name] | +--rw srlgs | | +--:(srlg-name) | +--rw path-constraints | | +--:(srlg-value) ... | +--rw ( bc-model-type )? | +--rw path-selection | | +--:(bc-model-rdm) ... | | +--:(bc-model-mam) | +--rw path-affinities? | +--rw thresholds | | +--:(equal-steps) ... | | +--:(unequal-steps) | +--rw path-srlgs ... ...
TE ¡Data ¡Model ¡ TE ¡Tunnels ¡(config) ¡ Ctd ... | +--:(p2p) | | +--rw destination? | | +--rw primary-paths* [preference] +--rw tunnels | | +--rw preference uint8 | | +--rw path-properties | +--rw tunnel* [name type] | | | +--rw path-named-constraint? | +--rw name string | | | | +--:(dynamic) | | | | +--:(explicit) | +--rw type identityref | | +--rw secondary-paths* [preference] | +--rw identifier? uint16 | | +--rw preference uint8 | +--rw description? string | | +--rw path-properties | | +--rw path-named-constraint? | +--rw admin-status? identityref | | +--rw path-constraints | +--rw (routing-choice)? | | | +--:(dynamic) | | | +--:(explicit) | | +--:(autoroute) | +--:(p2mp) | | +--:(forwarding-adjacency) | +--rw p2mp-paths* [destination] | +--rw forwarding | +--rw destination inet:ip-address | +--rw primary-paths* [preference] | | +--rw load-share? uint32 | +--rw preference uint8 | | +--rw (policy-type)? | +--rw path-properties | | +--rw path-named-constraint? | +--rw bidirectional | | | +--:(dynamic) <...> | | | +--:(explicit) | +--rw secondary-paths* [preference]
RSVP ¡Data ¡Model ¡(config) ¡ module: ietf-rsvp +--rw sessions | +--rw session* [src_port dst_port source dest] +--rw rsvp ! <snip> +--rw globals +--rw neighbors | +--rw signaling | +--rw neighbor* [address] | +--rw graceful-restart! {graceful-restart}? <snip> <snip> +--ro interface-state <snip> | +--rw hello {hellos}? +--ro sessions-state <snip> | +--ro session* [src_port dst_port source dest] | +--rw refresh <snip> | +--rw reduction {refresh-reduction}? +--ro neighbors-state <snip> +--ro neighbor* [address] <snip> +--rw interfaces | +--rw authentication {authentication}? <snip> | +--rw signaling <snip> | +--rw interface* [interface] | +--rw interface if:interface-ref | +--rw authentication {authentication}? | +--rw signaling
RSVP-‑TE ¡(packet/MPLS) ¡Data ¡Model ¡ AugmentaRon ¡of ¡RSVP ¡and ¡TE ¡Base ¡Models ¡ module: ietf-rsvp-te augment /rsvp:rsvp/rsvp:interfaces: augment /rsvp:rsvp/rsvp:globals: +--rw signaling +--rw frr-local-revert! augment /rsvp:rsvp/rsvp:interfaces/rsvp:interface +--rw frr-local-revert-delay? uint32 <snip> augment /ietf-te:te/ietf-te:tunnels/ietf-te:tunnel: <snip> augment /rsvp:rsvp/rsvp:sessions: +--rw source? inet:ip-address <snip> +--rw fast-reroute! | +--rw bandwidth-protection-desired? empty augment /rsvp:rsvp/rsvp:neighbors: | +--rw node-protection-desired? empty <snip> +--rw se-style-desired? empty +--rw soft-preemption-desired? empty augment /rsvp:rsvp/rsvp:sessions-state: +--rw record-route-desired? empty <snip> +--rw signaled-name? string +--rw priority augment /rsvp:rsvp/rsvp:neighbors-state: | +--rw setup? uint8 <snip> | +--rw hold? uint8 +--rw soft-preemption? empty
Next ¡Steps ¡ • Complete ¡outstanding ¡work ¡for ¡state/rpc/noRficaRon ¡for ¡TE, ¡ RSVP ¡and ¡RSVP-‑TE ¡YANG ¡models ¡ • Converge ¡on ¡Base ¡MPLS ¡YANG ¡model ¡ – common ¡a`ributes ¡across ¡MPLS ¡control ¡plane ¡technologies ¡(?) ¡ – more ¡suitable ¡for ¡representaRon ¡of ¡MPLS ¡data ¡plane ¡properRes ¡(?) ¡ • Add ¡MPLS ¡StaRc, ¡SPRING ¡and ¡TP ¡
Thank ¡You ¡
Recommend
More recommend