diff options
-rw-r--r-- | mpls/api/asciidoc/Readme.adoc | 11 | ||||
-rw-r--r-- | mpls/api/src/main/yang/vpp-mpls@2017-11-20.yang | 96 |
2 files changed, 106 insertions, 1 deletions
diff --git a/mpls/api/asciidoc/Readme.adoc b/mpls/api/asciidoc/Readme.adoc index 35ae1b079..eb6219aa6 100644 --- a/mpls/api/asciidoc/Readme.adoc +++ b/mpls/api/asciidoc/Readme.adoc @@ -1,5 +1,7 @@ = mpls-api +== IETF models + Hc2vpp implementation of MPLS uses following ietf models: - ietf-mpls - ietf-mpls-static @@ -11,4 +13,11 @@ More information can be found in yang files. Original YANG files were downloaded from -https://github.com/ietf-mpls-yang/te/
\ No newline at end of file +https://github.com/ietf-mpls-yang/te/ + +== VPP specific options + +VPP allows to perform lookup in ipv4 or ipv6 or mpls table. +Lookup table for pop-and-lookup operation can be specified +using static-lsp-vpp-lookup-augmentation +provided by vpp-mpls yang module.
\ No newline at end of file diff --git a/mpls/api/src/main/yang/vpp-mpls@2017-11-20.yang b/mpls/api/src/main/yang/vpp-mpls@2017-11-20.yang new file mode 100644 index 000000000..42d81d373 --- /dev/null +++ b/mpls/api/src/main/yang/vpp-mpls@2017-11-20.yang @@ -0,0 +1,96 @@ +module vpp-mpls { + yang-version 1; + namespace "urn:opendaylight:params:xml:ns:yang:vpp:mpls"; + prefix "vpp-mpls"; + + import hc2vpp-ietf-mpls { + prefix mpls; + revision-date 2017-07-02; + } + + import hc2vpp-ietf-routing { + prefix "rt"; + revision-date 2014-05-24; + } + + import hc2vpp-ietf-mpls-static { + prefix "mpls-static"; + revision-date 2017-03-10; + } + + import yang-ext { + prefix "ext"; + } + + contact + "Hc2vpp: <https://wiki.fd.io/view/Hc2vpp> + Hc2vpp List: <mailto:netmod@ietf.org>"; + + description + "This module contains a collection of YANG definitions for + configuring VPP specific MPLS options. + + See https://docs.fd.io/vpp/18.01/clicmd_src_vnet_mpls.html + for more details"; + + revision "2017-11-20" { + description + "Initial revision of vpp-mpls model."; + } + + typedef lookup-type { + type enumeration { + enum ipv4 { + value 0; + } + enum ipv6 { + value 1; + } + enum mpls { + value 2; + } + } + description + "Label lookup types based on data path protocols supported by vpp. + Enum values are based on the ones used by mpls apis"; + reference + "https://git.fd.io/vpp/tree/src/vnet/dpo/dpo.h"; + } + + grouping vpp-label-lookup-attributes { + container label-lookup { + leaf type { + type lookup-type; + } + leaf ip4-lookup-in-table { + when "../type = ipv4"; + type uint32; + description + "Mapped to non-eos lookup in IPv4 FIB table with given id."; + } + leaf ip6-lookup-in-table { + when "../type = ipv6"; + type uint32; + description + "Mapped to non-eos lookup in IPv6 FIB table with given id."; + } + leaf mpls-lookup-in-table { + when "../type = mpls"; + type uint32; + description + "Mapped to eos lookup in MPLS FIB table with given id."; + } + } + description + "Defines lookup attributes for pop-and-lookup operation. + Equivalent of CLI command: mpls local-label XXX-lookup-in-table N"; + } + + augment /rt:routing/mpls:mpls/mpls-static:static-lsps/mpls-static:static-lsp/mpls-static:config { + ext:augment-identifier "static-lsp-vpp-lookup-augmentation"; + when "operation = 'pop-and-lookup'"; + uses vpp-label-lookup-attributes; + description + "Augments static-lsp list entry with lookup options available in VPP."; + } +}
\ No newline at end of file |