summaryrefslogtreecommitdiffstats
path: root/nat/nat-api/src/main/yang/interface-nat@2017-08-16.yang
blob: d8791c3a454e75b3880b8ab7eeeb09fd95ebce4a (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
71
72
73
74
75
76
77
78
79
80
module interface-nat {
  yang-version 1;
  namespace "urn:opendaylight:params:xml:ns:yang:interface:nat";
  prefix "ifc-nat";

  import ietf-interfaces {
    prefix "if";
  }
  import yang-ext {
    prefix "ext";
  }

  description "Augmentations to interfaces model to connect interfaces with nat configuration.";

  revision "2017-08-16" {
    description "Added support for NAT64.";
  }

  revision "2017-08-01" {
    description "Added support for nat_interface_add_del_output_feature.";
  }

  revision "2016-12-14" {
    description "Initial revision of interface-nat model.";
  }

  grouping interface-nat-vpp-feature-attributes {
    leaf post-routing {
      type boolean;
      default false;
      description
        "Indicates whether NAT translation should be applied after routing.
         If true, nat_interface_anatdd_del_output_feature message is used to enable NAT.
         By default nat_interface_add_del_feature is used.";
      reference
        "https://git.fd.io/vpp/tree/src/plugins/nat/nat.api";
    }

    leaf nat44-support {
      type boolean;
      default true;
      description
        "Indicates NAT44 support. Enabled by default in order to preserve compatibility with previous versions of the model.";
    }

    leaf nat64-support {
      type boolean;
      description
        "Indicates NAT64 support";
    }

    reference
      "https://wiki.fd.io/view/VPP/SNAT";
  }

  grouping interface-nat-attributes {
    container nat {
      container inbound {
        presence "Enables inbound NAT";
        uses interface-nat-vpp-feature-attributes;
      }
      container outbound {
        presence "Enables outbound NAT";
        uses interface-nat-vpp-feature-attributes;
      }
    }
  }

  augment /if:interfaces/if:interface {
    ext:augment-identifier "nat-interface-augmentation";

    uses interface-nat-attributes;
  }

  augment /if:interfaces-state/if:interface {
    ext:augment-identifier "nat-interface-state-augmentation";

    uses interface-nat-attributes;
  }
}