From b77a5725338dc700873b36c98af85d70acd7bbe4 Mon Sep 17 00:00:00 2001 From: Michal Cmarada Date: Fri, 15 Jun 2018 13:12:53 +0200 Subject: HC2VPP-304 - add SRv6 policy module new models: - hc2vpp-oc-srte-policy@2017-09-18.yang (ietf draft for srte-policies) - vpp-oc-srte-policy@2018-05-14.yang (augments oc-srte-policy model with VPP specific configuration) - policy-context@2018-06-07.yang defines policy contexts for policies and candidate paths new features: - adds support for writing/reading SRv6 policies - adds support for writing/reading L2 steering - adds support for writing/reading L3 steering - implements support for FIB table management (HC2VPP-345) Change-Id: Ie83ac8ecdcc0e46086e1ecdaecbb811746151c2f Signed-off-by: Michal Cmarada --- .../src/main/yang/policy-context@2018-06-07.yang | 126 +++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 srv6/srv6-api/src/main/yang/policy-context@2018-06-07.yang (limited to 'srv6/srv6-api/src/main/yang/policy-context@2018-06-07.yang') diff --git a/srv6/srv6-api/src/main/yang/policy-context@2018-06-07.yang b/srv6/srv6-api/src/main/yang/policy-context@2018-06-07.yang new file mode 100644 index 000000000..2820d627f --- /dev/null +++ b/srv6/srv6-api/src/main/yang/policy-context@2018-06-07.yang @@ -0,0 +1,126 @@ +module policy-context { + yang-version 1; + namespace "urn:honeycomb:params:xml:ns:yang:policy:context"; + prefix "policy-ctx"; + + import hc2vpp-oc-srte-policy { + prefix "oc-srte"; + revision-date 2017-09-18; + } + + import ietf-inet-types { + prefix "inet"; + } + + import naming-context { + prefix "nc"; + } + + import yang-ext { + prefix "ext"; + } + + organization + "FD.io - The Fast Data Project"; + + contact + "Hc2vpp Wiki + Mailing List "; + + description + "This module provides mapping between SRV6 policy identifiers (color and endpoint) + defined in the hc2vpp-oc-srte-policy module and identifiers used by the VPP SRV6 + policy plugin. VPP uses BSID as policy identifier, which is mapped to color and + endpoint identifiers in the model. + + The mapping is managed internally by the HC SRV6 plugin. + It is exposed as operational state data for debugging purposes. + + Copyright (c) 2018 Bell Canada, Pantheon Technologies 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-06-07" { + description "Initial revision."; + } + + grouping srv6-policy-context-attributes { + container srv6-policy-mappings { + list srv6-policy-mapping { + key "bsid"; + + leaf name { + type string; + description "Srv6 policy name"; + } + + leaf color { + type uint32; + description "Srv6 policy color"; + } + + leaf endpoint { + type inet:ipv6-address; + description "Policy endpoint represented by IPv6 address"; + } + + leaf bsid { + type inet:ipv6-address; + description "Policy represented by IPv6 address"; + } + } + } + + } + + grouping srv6-candidate-path-context-attributes { + container srv6-candidate-path-mappings { + list srv6-candidate-path-mapping { + key "bsid"; + + leaf name { + type string; + description "Srv6 policy candidate path name"; + } + + leaf provisioning-method { + type identityref { + base oc-srte:provisioning-method-type; + } + description "Srv6 policy candidate path provisioning-method"; + } + + leaf preference { + type uint32; + description "Srv6 policy candidate path preference"; + } + + leaf distinguisher { + type uint32; + description "Srv6 policy candidate path distinguisher"; + } + + leaf bsid { + type inet:ipv6-address; + description "Candidate path represented by IPv6 address"; + } + } + } + } + + augment /nc:contexts { + ext:augment-identifier "srv6-policy-context-augmentation"; + uses srv6-policy-context-attributes; + uses srv6-candidate-path-context-attributes; + } +} -- cgit 1.2.3-korg