From: Lorand Jakab Date: Mon, 31 Jul 2017 15:08:55 +0000 (+0300) Subject: Switch to MD-SAL LISP address model X-Git-Tag: release/nitrogen~9^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F40%2F60940%2F3;p=lispflowmapping.git Switch to MD-SAL LISP address model ietf-lisp-address-types.yang was added to MD-SAL in [0] with the intention to be the canonical place for the model. This patch removes this model from lispflowmapping and switches to using that model. [0] https://git.opendaylight.org/gerrit/#/c/60528/ Change-Id: Ib731bf9f10efd7f4417d3ea8cb1b73018519062f Signed-off-by: Lorand Jakab --- diff --git a/mappingservice/lisp-proto/pom.xml b/mappingservice/lisp-proto/pom.xml index 0d69d9bc6..ecfc3d144 100644 --- a/mappingservice/lisp-proto/pom.xml +++ b/mappingservice/lisp-proto/pom.xml @@ -37,6 +37,10 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.mdsal.model ietf-yang-types-20130715 + + org.opendaylight.mdsal.model + ietf-lisp-address-types-2015-11-05 + org.opendaylight.mdsal.model iana-afn-safi diff --git a/mappingservice/lisp-proto/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/lisp/address/types/rev151105/SimpleAddressBuilder.java b/mappingservice/lisp-proto/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/lisp/address/types/rev151105/SimpleAddressBuilder.java deleted file mode 100644 index b201f9419..000000000 --- a/mappingservice/lisp-proto/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/lisp/address/types/rev151105/SimpleAddressBuilder.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105; - -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefixBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress; - - -/** - * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation. - * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32). - * - * The reason behind putting it under src/main/java is: - * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent - * loss of user code. - * - */ -public class SimpleAddressBuilder { - - public static SimpleAddress getDefaultInstance(String defaultValue) { - SimpleAddress address = tryIpAddress(defaultValue); - if (address != null) { - return address; - } - - address = tryIpPrefix(defaultValue); - if (address != null) { - return address; - } - - address = tryMacAddress(defaultValue); - if (address != null) { - return address; - } - - // XXX need support for MAC addresses and AS numbers - address = new SimpleAddress(new DistinguishedNameType(defaultValue)); - - return address; - } - - private static SimpleAddress tryIpAddress(String defaultValue) { - try { - SimpleAddress address = new SimpleAddress(IpAddressBuilder.getDefaultInstance(defaultValue)); - return address; - } catch (IllegalArgumentException e) { - return null; - } - } - - private static SimpleAddress tryIpPrefix(String defaultValue) { - try { - SimpleAddress address = new SimpleAddress(IpPrefixBuilder.getDefaultInstance(defaultValue)); - return address; - } catch (IllegalArgumentException e) { - return null; - } - } - - private static SimpleAddress tryMacAddress(String defaultValue) { - try { - SimpleAddress address = new SimpleAddress(new MacAddress(defaultValue)); - return address; - } catch (IllegalArgumentException e) { - return null; - } - } -} diff --git a/mappingservice/lisp-proto/src/main/yang/ietf-lisp-address-types.yang b/mappingservice/lisp-proto/src/main/yang/ietf-lisp-address-types.yang deleted file mode 100644 index c9c0b7b01..000000000 --- a/mappingservice/lisp-proto/src/main/yang/ietf-lisp-address-types.yang +++ /dev/null @@ -1,675 +0,0 @@ -module ietf-lisp-address-types { - namespace "urn:ietf:params:xml:ns:yang:ietf-lisp-address-types"; - prefix laddr; - import ietf-inet-types { - prefix inet; - revision-date 2013-07-15; - } - import ietf-yang-types { - prefix yang; - revision-date 2013-07-15; - } - organization - "IETF LISP (Locator/ID Separation Protocol) Working Group"; - contact - "lisp@ietf.org"; - description - "This YANG module defines the LISP Canonical Address Formats - (LCAF) for LISP. The module can be extended by vendors to - define vendor-specific parameters. - - 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 6338; see - the RFC itself for full legal notices. - - "; - revision 2015-11-05 { - description - "Initial revision."; - reference - "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10"; - } - identity lisp-address-family { - description - "Base identity from which identities describing LISP address - families are derived."; - } - identity no-address-afi { - base lisp-address-family; - description - "IANA Reserved."; - } - identity ipv4-afi { - base lisp-address-family; - description - "IANA IPv4 address family."; - } - identity ipv4-prefix-afi { - base lisp-address-family; - description - "IANA IPv4 address family prefix."; - } - identity ipv6-afi { - base lisp-address-family; - description - "IANA IPv6 address family."; - } - identity ipv6-prefix-afi { - base lisp-address-family; - description - "IANA IPv6 address family prefix."; - } - identity mac-afi { - base lisp-address-family; - description - "IANA MAC address family."; - } - identity distinguished-name-afi { - base lisp-address-family; - description - "IANA Distinguished Name address family."; - } - identity as-number-afi { - base lisp-address-family; - description - "IANA AS Number address family."; - } - identity lcaf { - base lisp-address-family; - description - "IANA LISP Canonical Address Format address family."; - } - identity null-address-lcaf { - base lcaf; - description - "Null body LCAF type."; - } - identity afi-list-lcaf { - base lcaf; - description - "AFI-List LCAF type."; - } - identity instance-id-lcaf { - base lcaf; - description - "Instance-ID LCAF type."; - } - identity as-number-lcaf { - base lcaf; - description - "AS Number LCAF type."; - } - identity application-data-lcaf { - base lcaf; - description - "Application Data LCAF type."; - } - identity geo-coordinates-lcaf { - base lcaf; - description - "Geo-coordinates LCAF type."; - } - identity opaque-key-lcaf { - base lcaf; - description - "Opaque Key LCAF type."; - } - identity nat-traversal-lcaf { - base lcaf; - description - "NAT-Traversal LCAF type."; - } - identity nonce-locator-lcaf { - base lcaf; - description - "Nonce-Locator LCAF type."; - } - identity multicast-info-lcaf { - base lcaf; - description - "Multicast Info LCAF type."; - } - identity explicit-locator-path-lcaf { - base lcaf; - description - "Explicit Locator Path LCAF type."; - } - identity security-key-lcaf { - base lcaf; - description - "Security Key LCAF type."; - } - identity source-dest-key-lcaf { - base lcaf; - description - "Source/Dest LCAF type."; - } - identity replication-list-lcaf { - base lcaf; - description - "Replication-List LCAF type."; - } - identity json-data-model-lcaf { - base lcaf; - description - "JSON Data Model LCAF type."; - } - identity key-value-address-lcaf { - base lcaf; - description - "Key/Value Address LCAF type."; - } - identity encapsulation-format-lcaf { - base lcaf; - description - "Encapsulation Format LCAF type."; - } - identity service-path-lcaf { - base lcaf; - description - "Service Path LCAF type."; - } - typedef instance-id-type { - type uint32 { - range "0..16777215"; - } - description - "Defines the range of values for an Instance ID."; - } - typedef service-path-id-type { - type uint32 { - range "0..16777215"; - } - description - "Defines the range of values for a Service Path ID."; - } - typedef distinguished-name-type { - type string; - description - "Distinguished Name address."; - reference - "http://www.iana.org/assignments/address-family-numbers/ - address-family-numbers.xhtml"; - } - typedef simple-address { - type union { - type inet:ip-address; - type inet:ip-prefix; - type yang:mac-address; - type distinguished-name-type; - type inet:as-number; - } - description - "Union of address types that can be part of LCAFs."; - } - - typedef lisp-address-family-ref { - type identityref { - base lisp-address-family; - } - description - "LISP address family reference."; - } - typedef lcaf-ref { - type identityref { - base lcaf; - } - description - "LCAF types reference."; - } - - grouping lisp-address { - description - "Generic LISP address."; - leaf address-type { - type lisp-address-family-ref; - mandatory true; - description - "Type of the LISP address."; - } - leaf virtual-network-id { - type instance-id-type; - description - "Virtual Network Identifier (instance-id) of the address."; - } - choice address { - description - "Various LISP address types, including IP, MAC, and LCAF."; - - leaf no-address { - when "../address-type = 'laddr:no-addr-afi'" { - description - "When AFI is 0."; - } - type empty; - description - "No address."; - } - leaf ipv4 { - when "../address-type = 'laddr:ipv4-afi'" { - description - "When AFI is IPv4."; - } - type inet:ipv4-address; - description - "IPv4 address."; - } - leaf ipv4-prefix { - when "../address-type = 'laddr:ipv4-prefix-afi'" { - description - "When AFI is IPv4."; - } - type inet:ipv4-prefix; - description - "IPv4 prefix."; - } - leaf ipv6 { - when "../address-type = 'laddr:ipv6-afi'" { - description - "When AFI is IPv6."; - } - type inet:ipv6-address; - description - "IPv6 address."; - } - leaf ipv6-prefix { - when "../address-type = 'laddr:ipv6-prefix-afi'" { - description - "When AFI is IPv6."; - } - type inet:ipv6-prefix; - description - "IPv6 address."; - } - leaf mac { - when "../address-type = 'laddr:mac-afi'" { - description - "When AFI is MAC."; - } - type yang:mac-address; - description - "MAC address."; - } - leaf distinguished-name { - when "../address-type = 'laddr:distinguished-name-afi'" { - description - "When AFI is distinguished-name."; - } - type distinguished-name-type; - description - "Distinguished Name address."; - } - leaf as-number { - when "../address-type = 'laddr:as-number-afi'" { - description - "When AFI is as-number."; - } - type inet:as-number; - description - "AS Number."; - } - container null-address { - when "../address-type = 'laddr:null-address-lcaf'" { - description - "When LCAF type is null."; - } - description - "Null body LCAF type"; - leaf address { - type empty; - description - "AFI address."; - } - } - container afi-list { - when "../address-type = 'laddr:afi-list-lcaf'" { - description - "When LCAF type is AFI-List."; - } - description - "AFI-List LCAF type."; - reference - "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 - #section-4.16.1"; - leaf-list address-list { - type simple-address; - description - "List of AFI addresses."; - } - } - container instance-id { - when "../address-type = 'laddr:instance-id-lcaf'" { - description - "When LCAF type is Instance-ID"; - } - description - "Instance ID LCAF type."; - reference - "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 - #section-4.2"; - leaf iid { - type instance-id-type; - description - "Instance ID value."; - } - leaf mask-length { - type uint8; - description - "Mask length."; - } - leaf address { - type simple-address; - description - "AFI address."; - } - } - container as-number-lcaf { - when "../address-type = 'laddr:as-number-lcaf'" { - description - "When LCAF type is AS-Number."; - } - description - "AS Number LCAF type."; - reference - "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 - #section-4.3"; - leaf as { - type inet:as-number; - description - "AS number."; - } - leaf address { - type simple-address; - description - "AFI address."; - } - } - container application-data { - when "../address-type = 'laddr:application-data-lcaf'" { - description - "When LCAF type is Application Data."; - } - description - "Application Data LCAF type."; - reference - "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 - #section-4.4"; - leaf address { - type simple-address; - description - "AFI address."; - } - leaf protocol { - type uint8; - description - "Protocol number."; - } - leaf ip-tos { - type int32; - description - "Type of service field."; - } - leaf local-port-low { - type inet:port-number; - description - "Low end of local port range."; - } - leaf local-port-high { - type inet:port-number; - description - "High end of local port range."; - } - leaf remote-port-low { - type inet:port-number; - description - "Low end of remote port range."; - } - leaf remote-port-high { - type inet:port-number; - description - "High end of remote port range."; - } - } - container geo-coordinates { - when "../address-type = 'laddr:geo-coordinates-lcaf'" { - description - "When LCAF type is Geo-coordinates."; - } - description - "Geo-coordinates LCAF type."; - reference - "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 - #section-4.5"; - leaf latitude { - type bits { - bit N { - description - "Latitude bit."; - } - } - description - "Bit that selects between North and South latitude."; - } - leaf latitude-degrees { - type uint8 { - range "0 .. 90"; - } - description - "Degrees of latitude."; - } - leaf latitude-minutes { - type uint8 { - range "0..59"; - } - description - "Minutes of latitude."; - } - leaf latitude-seconds { - type uint8 { - range "0..59"; - } - description - "Seconds of latitude."; - } - leaf longitude { - type bits { - bit E { - description - "Longitude bit."; - } - } - description - "Bit that selects between East and West longitude."; - } - leaf longitude-degrees { - type uint16 { - range "0 .. 180"; - } - description - "Degrees of longitude."; - } - leaf longitude-minutes { - type uint8 { - range "0..59"; - } - description - "Minutes of longitude."; - } - leaf longitude-seconds { - type uint8 { - range "0..59"; - } - description - "Seconds of longitude."; - } - leaf altitude { - type int32; - description - "Height relative to sea level in meters."; - } - leaf address { - type simple-address; - description - "AFI address."; - } - } - container nat-traversal { - when "../address-type = 'laddr:nat-traversal-lcaf'" { - description - "When LCAF type is NAT-Traversal."; - } - description - "NAT-Traversal LCAF type."; - reference - "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 - #section-4.6"; - leaf ms-udp-port { - type uint16; - description - "Map-Server UDP port (set to 4342)."; - } - leaf etr-udp-port { - type uint16; - description - "ETR UDP port."; - } - leaf global-etr-rloc { - type simple-address; - description - "Global ETR RLOC address."; - } - leaf ms-rloc { - type simple-address; - description - "Map-Server RLOC address."; - } - leaf private-etr-rloc { - type simple-address; - description - "Private ETR RLOC address."; - } - leaf-list rtr-rlocs { - type simple-address; - description - "List of RTR RLOC addresses."; - } - } - container explicit-locator-path { - when "../address-type = 'laddr:explicit-locator-path-lcaf'" { - description - "When LCAF type type is Explicit Locator Path."; - } - description - "Explicit Locator Path LCAF type."; - reference - "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 - #section-4.9"; - list hop { - key "hop-id"; - ordered-by user; - description - "List of locator hops forming the explicit path."; - leaf hop-id { - type string; - description - "Unique identifier for the hop."; - } - leaf address { - type simple-address; - description - "AFI address."; - } - leaf lrs-bits { - type bits{ - bit lookup { - description - "Lookup bit."; - } - bit rloc-probe { - description - "RLOC-probe bit."; - } - bit strict { - description - "Strict bit."; - } - } - description - "Flag bits per hop."; - } - } - } - container source-dest-key { - when "../address-type = 'laddr:source-dest-key-lcaf'" { - description - "When LCAF type type is Source/Dest."; - } - description - "Source/Dest LCAF type."; - reference - "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 - #section-4.11"; - leaf source { - type simple-address; - description - "Source address."; - } - leaf dest { - type simple-address; - description - "Destination address."; - } - } - container key-value-address { - when "../address-type = 'laddr:key-value-address-lcaf'" { - description - "When LCAF type type is Key/Value Address."; - } - description - "Key/Value Address LCAF type."; - reference - "http://tools.ietf.org/html/draft-ietf-lisp-lcaf-10 - #section-4.11"; - leaf key { - type simple-address; - description - "Address as Key."; - } - leaf value { - type simple-address; - description - "Address as Value."; - } - } - container service-path { - when "../address-type = 'laddr:service-path-lcaf'" { - description - "When LCAF type service path identifier."; - } - description - "Service Path LCAF type."; - reference - "http://tools.ietf.org/html/draft-ermagan-lisp-nsh-00"; - leaf service-path-id { - type service-path-id-type; - description - "Service path identifier for the path for NSH header"; - } - leaf service-index { - type uint8; - description - "Service path index for NSH header"; - } - } - } - } -}