HC2VPP-105: update NAT models to support Nat64 14/7914/3
authorMarek Gradzki <[email protected]>
Fri, 4 Aug 2017 11:25:29 +0000 (13:25 +0200)
committerJan Srnicek <[email protected]>
Mon, 14 Aug 2017 07:59:38 +0000 (07:59 +0000)
Nat api in VPP (https://wiki.fd.io/view/VPP/SNAT#API_3)
uses different api calls for nat44 and nat64.

While ietf-nat model allows to distinguish between
static nat44 and nat64 mappings,
external-ip-address-pool needs to be augmented
with nat pool type.

Change-Id: I2ce1fa3a8241c337c617bcbb77ec5eb2a33044e4
Signed-off-by: Marek Gradzki <[email protected]>
nat/nat-api/src/main/yang/[email protected] [new file with mode: 0644]

new file mode 100644 (file)
index 0000000..7a2e234
--- /dev/null
@@ -0,0 +1,47 @@
+module vpp-nat {
+  yang-version 1;
+  namespace "urn:opendaylight:params:xml:ns:yang:vpp:nat";
+  prefix "vpp-nat";
+
+  revision "2017-08-04" {
+    description "Initial revision of vpp-nat model.";
+  }
+
+  import ietf-nat {
+    prefix "nat";
+  }
+  import yang-ext {
+    prefix "ext";
+  }
+
+  description "Augmentations to ietf-nat model providing vpp specific attributes.";
+
+  typedef nat-pool-type {
+    type enumeration {
+      enum "nat44";
+      enum "nat64";
+    }
+  }
+
+  grouping external-ip-address-pool-vpp-attributes {
+    leaf pool-type {
+      type nat-pool-type;
+      description
+        "Indicates whether the pool is designated to be used for nat44 or nat64.";
+      reference
+        "https://git.fd.io/vpp/tree/src/plugins/snat/snat.api";
+    }
+  }
+
+  augment /nat:nat-config/nat:nat-instances/nat:nat-instance/nat:external-ip-address-pool {
+    ext:augment-identifier "external-ip-address-pool-config-augmentation";
+
+    uses external-ip-address-pool-vpp-attributes;
+  }
+
+  augment /nat:nat-state/nat:nat-instances/nat:nat-instance/nat:nat-current-config/nat:external-ip-address-pool {
+    ext:augment-identifier "external-ip-address-pool-state-augmentation";
+
+    uses external-ip-address-pool-vpp-attributes;
+  }
+}
\ No newline at end of file