From 8f9fe3ca424abc56d212a96af4ec5750a29e7673 Mon Sep 17 00:00:00 2001 From: Michal Cmarada Date: Fri, 4 May 2018 16:13:09 +0200 Subject: HC2VPP-253 - Bump routing models This patch updates (for support of SRv6 and MPLS) routing models to: - hc2vpp-ietf-routing@2018-03-13.yang (RFC 8349, https://tools.ietf.org/html/rfc8349) - hc2vpp-ietf-ipv4-unicast-routing@2018-03-13.yang (RFC 8349) - hc2vpp-ietf-ipv6-unicast-routing@2018-03-13.yang (RFC 8349) - hc2vpp-ietf-ipv6-router-advertisements@2018-03-13 (RFC 8349) - hc2vpp-ietf-routing-types@2017-12-04 (RFC 8294 ,https://tools.ietf.org/html/rfc8294) Due to odl bugs these models were changed, see HC2VPP-298 for more details. Significant changes in updated models: - Routing instance was removed, we used vpp-routing-instance as single instance before, which is no longer needed. - Routing-protocol and Routing-protocols were refactored to Control-plane-protocol/s. Control-protocol now uses type and name as key - Route Key was changed from id to ipPrefix - Next-hop and Next-Hop-list were refactored See attached routing_postman_collection.json for updated data structures and examples for both IPv4 and IPv6 routes. For router advertisements see routing_advertisments_postman_collection.json Another fixes in this patch: - fixes in MPLS module due to Routing model updates - fixes doc module due to changes in Routing model Change-Id: I33704a50061aef97dfbd73a7701ff6fe5274d6f0 Signed-off-by: Michal Cmarada --- ...c2vpp-ietf-ipv4-unicast-routing@2017-09-17.yang | 446 --------------------- 1 file changed, 446 deletions(-) delete mode 100644 routing/routing-api/src/main/yang/hc2vpp-ietf-ipv4-unicast-routing@2017-09-17.yang (limited to 'routing/routing-api/src/main/yang/hc2vpp-ietf-ipv4-unicast-routing@2017-09-17.yang') diff --git a/routing/routing-api/src/main/yang/hc2vpp-ietf-ipv4-unicast-routing@2017-09-17.yang b/routing/routing-api/src/main/yang/hc2vpp-ietf-ipv4-unicast-routing@2017-09-17.yang deleted file mode 100644 index 5357d1544..000000000 --- a/routing/routing-api/src/main/yang/hc2vpp-ietf-ipv4-unicast-routing@2017-09-17.yang +++ /dev/null @@ -1,446 +0,0 @@ -module hc2vpp-ietf-ipv4-unicast-routing { - - namespace "urn:ietf:params:xml:ns:yang:ietf-ipv4-unicast-routing"; - - prefix "v4ur"; - - import vpp-routing-table-lookup { - prefix "vpp-tl"; - } - - import hc2vpp-ietf-routing { - prefix "rt"; - revision-date 2014-05-24; - } - - import ietf-inet-types { - prefix "inet"; - } - - //TODO modification needed because of yangtools bug(unable to proceed augmentation in separate model of augmentation in this model) - import vpp-routing { - prefix vpp-r; - } - - organization - "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; - - contact - "WG Web: - WG List: - - WG Chair: Thomas Nadeau - - - WG Chair: Juergen Schoenwaelder - - - Editor: Ladislav Lhotka - "; - - description - "This YANG module augments the 'ietf-routing' module with basic - configuration and operational state data for IPv4 unicast - routing. - - Copyright (c) 2014 IETF Trust and the persons identified as - authors of the code. All rights reserved. - - Redistribution and use in source and binary forms, with or - without modification, is permitted pursuant to, and subject to - the license terms contained in, the Simplified BSD License set - forth in Section 4.c of the IETF Trust's Legal Provisions - Relating to IETF Documents - (http://trustee.ietf.org/license-info). - - This version of this YANG module is part of RFC XXXX; see the - RFC itself for full legal notices."; - - revision 2017-09-17 { - description - "Table lookup support"; - } - - revision 2014-05-24 { - description - "Initial revision."; - reference - "RFC XXXX: A YANG Data Model for Routing Management"; - } - - /* Identities */ - - identity ipv4-unicast { - base rt:ipv4; - description - "This identity represents the IPv4 unicast address family."; - } - - /* Operational state data */ - - augment "/rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route" { - when "../../rt:address-family = 'v4ur:ipv4-unicast'" { - description - "This augment is valid only for IPv4 unicast."; - } - description - "This leaf augments an IPv4 unicast route."; - leaf destination-prefix { - type inet:ipv4-prefix; - description - "IPv4 destination prefix."; - } - } - - augment "/rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route/" - + "rt:next-hop-options/rt:simple-next-hop" { - when "../../rt:address-family = 'v4ur:ipv4-unicast'" { - description - "This augment is valid only for IPv4 unicast."; - } - description - "This leaf augments the 'simple-next-hop' case of IPv4 unicast - routes."; - leaf next-hop { - type inet:ipv4-address; - description - "IPv4 address of the next-hop."; - } - } - - augment "/rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route/" - + "rt:next-hop-options/rt:next-hop-list/rt:next-hop-list/" - + "rt:next-hop" { - when "../../../../rt:address-family = 'v4ur:ipv4-unicast'" { - description - "This augment is valid only for IPv4 unicast."; - } - if-feature rt:multipath-routes; - description - "This leaf augments the 'next-hop-list' case of IPv4 unicast - routes."; - leaf address { - type inet:ipv4-address; - description - "IPv4 address of the next-hop."; - } - } - - //NODE Added same augmentation for operation state - augment "/rt:routing-state/rt:routing-instance/rt:routing-protocols/rt:routing-protocol/rt:static-routes" { - description - "This augment defines the configuration of the 'static' - pseudo-protocol with data specific to IPv4 unicast."; - container ipv4 { - description - "Configuration of a 'static' pseudo-protocol instance - consists of a list of routes."; - list route { - key "id"; - ordered-by "user"; - description - "A user-ordered list of static routes."; - leaf id { - type uint32 { - //WARNING - range changed from 1..max to be mappable on vpp table ids - range "0..max"; - } - description - "Unique numeric identifier of the route. - - This value is unrelated to system-assigned 'id' - parameters of routes in RIBs."; - } - leaf description { - type string; - description - "Textual description of the route."; - } - leaf destination-prefix { - type inet:ipv4-prefix; - mandatory "true"; - description - "IPv4 destination prefix."; - } - choice next-hop-options { - mandatory "true"; - description - "Options for expressing the next-hop in static routes."; - case special-next-hop { - uses rt:special-next-hop-grouping; - } - // TODO - HONEYCOMB-398/HC2VPP-237 - case table-lookup { - container table-lookup-params { - uses vpp-tl:table-lookup-case-params; - } - } - - case simple-next-hop { - leaf next-hop { - type inet:ipv4-address; - description - "IPv4 address of the next-hop."; - } - - //TODO - temporarily set to absolute path until https://bugs.opendaylight.org/show_bug.cgi?id=6881 is resolved - leaf outgoing-interface { - type leafref { - path "/rt:routing/rt:routing-instance/rt:interfaces/rt:interface/" - + "rt:name"; - } - description - "Name of the outgoing interface. - - Only interfaces configured for the ancestor routing - instance can be given."; - } - } - case next-hop-list { - if-feature rt:multipath-routes; - container next-hop-list { - description - "Configuration of multiple next-hops."; - list next-hop { - key "id"; - description - "An entry of a next-hop list."; - leaf id { - type uint32; - description - "Unique numeric identifier of the entry. - - This value is unrelated to system-assigned 'id' - parameters of next-hops in RIBs."; - } - leaf address { - type inet:ipv4-address; - description - "IPv4 address of the next-hop."; - } - //TODO - temporarily set to absolute path until https://bugs.opendaylight.org/show_bug.cgi?id=6881 is resolved - leaf outgoing-interface { - type leafref { - path "/rt:routing/rt:routing-instance/rt:interfaces/" - + "rt:interface/rt:name"; - } - description - "Name of the outgoing interface. - - Only interfaces configured for the ancestor - routing instance can be given."; - } - uses rt:next-hop-classifiers { - refine "priority" { - default "primary"; - } - refine "weight" { - default "0"; - } - } - } - } - } - } - - //TODO modification needed because of yangtools bug(unable to proceed augmentation in separate model of augmentation in this model) - container vpp-ipv4-route-state{ - uses vpp-r:vpp-route-attributes; - } - } - } - } - - - /* Configuration data */ - - augment "/rt:routing/rt:routing-instance/rt:routing-protocols/rt:routing-protocol/rt:static-routes" { - description - "This augment defines the configuration of the 'static' - pseudo-protocol with data specific to IPv4 unicast."; - container ipv4 { - description - "Configuration of a 'static' pseudo-protocol instance - consists of a list of routes."; - list route { - key "id"; - ordered-by "user"; - description - "A user-ordered list of static routes."; - leaf id { - type uint32 { - //WARNING - range changed from 1..max to be mappable on vpp table ids - range "0..max"; - } - description - "Unique numeric identifier of the route. - - This value is unrelated to system-assigned 'id' - parameters of routes in RIBs."; - } - leaf description { - type string; - description - "Textual description of the route."; - } - leaf destination-prefix { - type inet:ipv4-prefix; - mandatory "true"; - description - "IPv4 destination prefix."; - } - choice next-hop-options { - mandatory "true"; - description - "Options for expressing the next-hop in static routes."; - case special-next-hop { - uses rt:special-next-hop-grouping; - } - case simple-next-hop { - leaf next-hop { - type inet:ipv4-address; - description - "IPv4 address of the next-hop."; - } - - //TODO - temporarily set to absolute path until https://bugs.opendaylight.org/show_bug.cgi?id=6881 is resolved - leaf outgoing-interface { - type leafref { - path "/rt:routing/rt:routing-instance/rt:interfaces/rt:interface/" - + "rt:name"; - } - description - "Name of the outgoing interface. - - Only interfaces configured for the ancestor routing - instance can be given."; - } - } - - // TODO - HONEYCOMB-398/HC2VPP-237 - case table-lookup { - container table-lookup-params { - uses vpp-tl:table-lookup-case-params; - } - } - - case next-hop-list { - if-feature rt:multipath-routes; - container next-hop-list { - description - "Configuration of multiple next-hops."; - list next-hop { - key "id"; - description - "An entry of a next-hop list."; - leaf id { - type uint32; - description - "Unique numeric identifier of the entry. - - This value is unrelated to system-assigned 'id' - parameters of next-hops in RIBs."; - } - leaf address { - type inet:ipv4-address; - description - "IPv4 address of the next-hop."; - } - //TODO - temporarily set to absolute path until https://bugs.opendaylight.org/show_bug.cgi?id=6881 is resolved - leaf outgoing-interface { - type leafref { - path "/rt:routing/rt:routing-instance/rt:interfaces/" - + "rt:interface/rt:name"; - } - description - "Name of the outgoing interface. - - Only interfaces configured for the ancestor - routing instance can be given."; - } - uses rt:next-hop-classifiers { - refine "priority" { - default "primary"; - } - refine "weight" { - default "0"; - } - } - } - } - } - } - - //TODO modification needed because of yangtools bug(unable to proceed augmentation in separate model of augmentation in this model) - container vpp-ipv4-route{ - uses vpp-r:vpp-route-attributes; - } - } - } - } - - /* RPC methods */ - - augment "/rt:active-route/rt:input/rt:destination-address" { - when "rt:address-family='v4ur:ipv4-unicast'" { - description - "This augment is valid only for IPv4 unicast."; - } - description - "This leaf augments the 'rt:destination-address' parameter of - the 'rt:active-route' operation."; - leaf address { - type inet:ipv4-address; - description - "IPv4 destination address."; - } - } - - augment "/rt:active-route/rt:output/rt:route" { - when "rt:address-family='v4ur:ipv4-unicast'" { - description - "This augment is valid only for IPv4 unicast."; - } - description - "This leaf augments the reply to the 'rt:active-route' - operation."; - leaf destination-prefix { - type inet:ipv4-prefix; - description - "IPv4 destination prefix."; - } - } - - augment "/rt:active-route/rt:output/rt:route/rt:next-hop-options/" - + "rt:simple-next-hop" { - when "rt:address-family='v4ur:ipv4-unicast'" { - description - "This augment is valid only for IPv4 unicast."; - } - description - "This leaf augments the 'simple-next-hop' case in the reply to - the 'rt:active-route' operation."; - leaf next-hop { - type inet:ipv4-address; - description - "IPv4 address of the next-hop."; - } - } - - augment "/rt:active-route/rt:output/rt:route/rt:next-hop-options/" - + "rt:next-hop-list/rt:next-hop-list/rt:next-hop" { - when "../../rt:address-family='v4ur:ipv4-unicast'" { - description - "This augment is valid only for IPv4 unicast."; - } - if-feature rt:multipath-routes; - description - "This leaf augments the 'next-hop-list' case in the reply to - the 'rt:active-route' operation."; - leaf address { - type inet:ipv4-address; - description - "IPv4 address of the next-hop."; - } - } -} \ No newline at end of file -- cgit 1.2.3-korg