summaryrefslogtreecommitdiffstats
path: root/nat/nat-api/src/main/yang/interface-nat@2016-08-01.yang
blob: 6906a67c1d02ac545f0f67feef09b4057155f9ec (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
module interface-nat {
  yang-version 1;
  namespace "urn:opendaylight:params:xml:ns:yang:interface:nat";
  prefix "ifc-nat";

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

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

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

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

  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, snat_interface_add_del_output_feature message is used to enable NAT.
         By default snat_interface_add_del_feature is used.";
      reference
        "https://git.fd.io/vpp/tree/src/plugins/snat/snat.api";
    }
  }

  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;
  }
}