summaryrefslogtreecommitdiffstats
path: root/nat/nat-api/src/main/yang/vpp-nat@2017-08-04.yang
blob: 6f4215a2194f84ef9a8f9e051eabc5954297214f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
module vpp-nat {
  yang-version 1;
  namespace "urn:opendaylight:params:xml:ns:yang:vpp:nat";
  prefix "vpp-nat";

  import ietf-nat {
    prefix "nat";
  }
  import yang-ext {
    prefix "ext";
  }

  organization
    "FD.io - The Fast Data Project";

  contact
    "Hc2vpp Wiki <https://wiki.fd.io/view/Hc2vpp>
     Mailing List <hc2vpp@lists.fd.io>";

  description
    "This module contains a collection of YANG definitions that extend ietf-nat module
     with VPP specific features provided by the VPP NAT plugin.

     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 "2017-08-04" {
    description "Initial revision of vpp-nat model.";
  }

  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/nat/nat.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;
  }
}