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 --- .../src/main/yang/vpp-routing-ra@2018-03-19.yang | 145 +++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 routing/routing-api/src/main/yang/vpp-routing-ra@2018-03-19.yang (limited to 'routing/routing-api/src/main/yang/vpp-routing-ra@2018-03-19.yang') diff --git a/routing/routing-api/src/main/yang/vpp-routing-ra@2018-03-19.yang b/routing/routing-api/src/main/yang/vpp-routing-ra@2018-03-19.yang new file mode 100644 index 000000000..5be3f6d38 --- /dev/null +++ b/routing/routing-api/src/main/yang/vpp-routing-ra@2018-03-19.yang @@ -0,0 +1,145 @@ +module vpp-routing-ra { + + namespace "urn:ietf:params:xml:ns:yang:vpp-routing-ra"; + prefix "vpp-routing"; + + import yang-ext { + prefix "ext"; + } + + import hc2vpp-ietf-routing { + prefix "ietf-r"; + revision-date 2018-03-13; + } + + import hc2vpp-ietf-ipv6-unicast-routing { + prefix "v6ur"; + revision-date 2018-03-13; + } + + import ietf-ip { + prefix "ip"; + } + + import ietf-interfaces { + prefix "if"; + } + + organization + "FD.io - The Fast Data Project"; + + contact + "Hc2vpp Wiki + Mailing List "; + + description + "This module contains a collection of YANG definitions + that extend hc2vpp-ietf-routing module + with VPP specific routing advertisments features. + + Copyright (c) 2017 Cisco and/or its affiliates. + + Licensed under the Apache License, Version 2.0 (the 'License'); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at: + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an 'AS IS' BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License."; + + revision 2018-03-19 { + description + "Update hc2vpp-ietf-routing revision-date to 2018-03-13"; + } + + revision 2017-05-02 { + description "Changed namespace"; + } + + revision 2017-03-15 { + description "Initial revision."; + } + + grouping ipv6-router-advertisements-vpp-attributes { + leaf suppress-link-layer { + type boolean; + default false; + description + "Dicates not to include the optional source link-layer address + in the ICMPv6 router-advertisement messages."; + } + leaf send-unicast { + type boolean; + default false; + description + "Use the source address of the router-solicitation message if availiable."; + } + leaf cease { + type boolean; + default false; + description + "Cease sending ICMPv6 router-advertisement messages."; + } + leaf initial-count { + type uint8 { + range "1..3"; + } + default 3; + description + "Number of initial ICMPv6 router-advertisement messages sent."; + } + leaf initial-interval { + type uint8 { + range "1..16"; + } + units "seconds"; + default 16; + description + "Interval between initial ICMPv6 router-advertisement messages."; + } + + description + "VPP specific configuration of RA messages. Mapped to sw_interface_ip6nd_ra_config API: + https://git.fd.io/vpp/tree/src/vnet/ip/ip.api#n196"; + + reference + "https://docs.fd.io/vpp/17.04/clicmd_src_vnet_ip.html#clicmd_ip6_nd"; + } + + grouping control-adv-prefixes-vpp-attributes { + leaf advertise-router-address { + type boolean; + default true; + description + "Send full router address in prefix advertisement."; + } + leaf vpp-default { + type boolean; + default false; + description + "Use VPP default values for prefix advertisment."; + } + + description + "VPP specific configuration of prefixes in RA messages. Mapped to sw_interface_ip6nd_ra_prefix API: + https://git.fd.io/vpp/tree/src/vnet/ip/ip.api#n243"; + + reference + "https://docs.fd.io/vpp/17.04/clicmd_src_vnet_ip.html#clicmd_ip6_nd"; + } + + augment "/if:interfaces/if:interface/ip:ipv6/v6ur:ipv6-router-advertisements" { + ext:augment-identifier "ipv6-router-advertisements-vpp-augmentation"; + uses ipv6-router-advertisements-vpp-attributes; + } + + augment "/if:interfaces/if:interface/ip:ipv6/v6ur:ipv6-router-advertisements/v6ur:prefix-list/v6ur:prefix" { + // TODO control-adv-prefixes/advertise case should be target node (change after yangtools issues are solved) + ext:augment-identifier "control-adv-prefixes-vpp-augmentation"; + uses control-adv-prefixes-vpp-attributes; + } +} -- cgit 1.2.3-korg