HONEYCOMB-58 - Routing Api
[honeycomb.git] / nat / nat-api / src / main / yang / ietf-nat.yang
1 module ietf-nat {
2
3     namespace "urn:ietf:params:xml:ns:yang:ietf-nat";
4     //namespace to be assigned by IANA
5     prefix "nat";
6         import ietf-inet-types {
7        prefix "inet";
8     }
9
10     organization "IETF NetMod Working Group";
11     contact
12       "Senthil Sivakumar <ssenthil@cisco.com>
13        Mohamed Boucadair <mohamed.boucadair@orange.com>
14        Suresh Vinapamula <sureshk@juniper.net>";
15
16      description
17         "This module is a YANG module for NAT implementations
18         (including both NAT44 and NAT64 flavors.
19
20         Copyright (c) 2015 IETF Trust and the persons identified as
21         authors of the code.  All rights reserved.
22
23         Redistribution and use in source and binary forms, with or
24         without modification, is permitted pursuant to, and subject
25         to the license terms contained in, the Simplified BSD License
26         set forth in Section 4.c of the IETF Trust's Legal Provisions
27         Relating to IETF Documents
28         (http://trustee.ietf.org/license-info).
29
30         This version of this YANG module is part of RFC XXXX; see
31         the RFC itself for full legal notices.";
32
33      revision 2015-09-08 {
34        description "Fixes few YANG errors.";
35        reference "-02";
36      }
37
38      revision 2015-09-07 {
39        description "Completes the NAT64 model.";
40        reference "01";
41      }
42
43      revision 2015-08-29 {
44        description "Initial version.";
45        reference "00";
46      }
47
48      typedef percent {
49           type uint8 {
50                range "0 .. 100";
51           }
52           description
53               "Percentage";
54      }
55
56      /*
57       * Grouping
58       */
59
60      grouping timeouts {
61          description
62          "Configure values of various timeouts.";
63
64          leaf udp-timeouts {
65            type uint32;
66            default 300;
67            description
68             "UDP inactivity timeout.";
69          }
70
71          leaf tcp-idle-timeout {
72              type uint32;
73              default 7440;
74              description
75                 "TCP Idle timeout, as per RFC 5382 should be no
76                  2 hours and 4 minutes.";
77          }
78
79          leaf tcp-trans-open-timeout {
80              type uint32;
81              default 240;
82              description
83             "The value of the transitory open connection
84             idle-timeout.";
85          }
86
87          leaf tcp-trans-close-timeout {
88              type uint32;
89               default 240;
90               description
91                 "The value of the transitory close connection
92                  idle-timeout.";
93           }
94
95           leaf tcp-in-syn-timeout {
96               type uint32;
97               default 6;
98               description
99                 "6 seconds, as defined in [RFC5382].";
100           }
101
102           leaf fragment-min-timeout {
103               type uint32;
104               default 2;
105               description
106                 "As long as the NAT has available resources,
107                 the NAT allows the fragments to arrive
108                 over fragment-min-timeout interval.
109                 The default value is inspired from RFC6146.";
110           }
111
112           leaf icmp-timeout {
113               type uint32;
114               default 60;
115               description
116                   "60 seconds, as defined in [RFC5508].";
117           }
118      }
119
120      // port numbers: single or port range
121
122      grouping port-number {
123          description
124         "Individual port or a range of ports.";
125
126          choice port-type {
127              default single-port-number;
128              description
129                  "Port type: single or port-range.";
130
131              case single-port-number {
132                  leaf single-port-number {
133                      type inet:port-number;
134                      description
135                          "Used for single port numbers.";
136                  }
137              }
138
139              case port-range {
140                  leaf start-port-number {
141                      type inet:port-number;
142                      description
143                          "Begining of the port range.";
144                  }
145
146                  leaf end-port-number {
147                      type inet:port-number;
148                      description
149                          "End of the port range.";
150                  }
151              }
152          }
153      }
154
155      grouping mapping-entry {
156           description
157           "NAT mapping entry.";
158
159           leaf index {
160               type uint32;
161               description
162                 "A unique identifier of a mapping entry.";
163           }
164
165           leaf type {
166                type enumeration {
167                    enum "static"  {
168                       description
169                          "The mapping entry is manually configured.";
170                    }
171
172                    enum "dynamic" {
173                       description
174                        "This mapping is created by an outgoing
175                        packet.";
176                    }
177                }
178                description
179                  "Indicates the type of a mapping entry. E.g.,
180                  a mapping can be: static or dynamic";
181           }
182
183           leaf internal-src-address {
184               type inet:ip-address;
185               mandatory true;
186               description
187                "Corresponds to the source IPv4/IPv6 address
188                 of the IPv4 packet";
189           }
190
191           container internal-src-port {
192               description
193                  "Corresponds to the source port of the
194                   IPv4 packet.";
195               uses port-number;
196           }
197
198           leaf external-src-address {
199                type inet:ipv4-address;
200                mandatory true;
201                description
202                 "External IPv4 address assigned by NAT";
203           }
204
205           container external-src-port {
206              description
207             "External source port number assigned by NAT.";
208              uses port-number;
209           }
210
211           leaf transport-protocol {
212               type uint8;
213               // mandatory true;
214               description
215                 "Upper-layer protocol associated with this mapping.
216                  Values are taken from the IANA protocol registry.
217                  For example, this field contains 6 (TCP) for a TCP
218                  mapping or 17 (UDP) for a UDP mapping.";
219           }
220
221           leaf internal-dst-address {
222               type inet:ipv4-prefix;
223               description
224                "Corresponds to the destination IPv4 address
225                 of the IPv4 packet, for example, some NAT
226                 implementation support translating both source
227                 and destination address and ports referred to as
228                 Twice NAT";
229           }
230
231           container internal-dst-port {
232               description
233                  "Corresponds to the destination port of the
234                   IPv4 packet.";
235                uses port-number;
236           }
237
238           leaf external-dst-address {
239                type inet:ipv4-address;
240                description
241                 "External destination IPv4 address";
242           }
243
244           container external-dst-port {
245              description
246             "External source port number.";
247              uses port-number;
248           }
249
250           leaf lifetime {
251                type uint32;
252                // mandatory true;
253                description
254                  "Lifetime of the mapping.";
255           }
256      }
257
258      grouping nat-parameters {
259           description
260             "NAT parameters for a given instance";
261
262               list external-ip-address-pool {
263                    key pool-id;
264
265
266                    description
267                  "Pool of external IP addresses used to service
268                   internal hosts.
269                   Both contiguous and non-contiguous pools
270                   can be configured for NAT.";
271
272                    leaf pool-id {
273                         type uint32;
274                         description
275                           "An identifier of the address pool.";
276                     }
277
278                     leaf external-ip-pool {
279                          type inet:ipv4-prefix;
280                          description
281                            "An IPv4 prefix used for NAT purposes.";
282                     }
283               }
284
285
286               leaf subscriber-mask-v6 {
287                   type uint8 {
288                       range "0 .. 128";
289                   }
290                   description
291                    "The subscriber-mask is an integer that indicates
292                    the length of significant bits to be applied on
293                    the source IP address (internal side) to
294                    unambiguously identify a CPE.
295
296                    Subscriber-mask is a system-wide configuration
297                    parameter that is used to enforce generic
298                    per-subscriberpolicies (e.g., port-quota).
299
300                    The enforcement of these generic policies does not
301                    require the configuration of every subscriber's
302                    prefix.
303
304                    Example: suppose the 2001:db8:100:100::/56 prefix
305                    is assigned to a NAT64 serviced CPE. Suppose also
306                    that 2001:db8:100:100::1 is the IPv6 address used
307                    by the client that resides in that CPE. When the
308                    NAT64 receives a packet from this client,
309                    it applies the subscriber-mask (e.g., 56) on
310                    the source IPv6 address to compute the associated
311                    prefix for this client (2001:db8:100:100::/56).
312                    Then, the NAT64 enforces policies based on that
313                    prefix (2001:db8:100:100::/56), not on the exact
314                    source IPv6 address.";
315               }
316
317
318               list subscriber-mask-v4 {
319
320                    key sub-mask-id;
321
322                    description
323                       "IPv4 subscriber mask.";
324
325                    leaf sub-mask-id {
326                         type uint32;
327                         description
328                           "An identifier of the subscriber masks.";
329                    }
330                    leaf sub-mask {
331                          type inet:ipv4-prefix;
332                          // mandatory true;
333                          description
334                           "The IP address subnets that matches
335                           should be translated. E.g., If the
336                           private realms that are to be translated
337                           by NAT would be 192.0.2.0/24";
338                    }
339                }
340
341                leaf paired-address-pooling {
342                    type boolean;
343                    default true;
344                    description
345                     "Paired address pooling is indicating to NAT
346                     that all the flows from an internal IP
347                     address must be assigned the same external
348                     address. This is defined in RFC 4007.";
349                }
350
351                leaf nat-mapping-type {
352                     type enumeration {
353                         enum "eim"  {
354                            description
355                               "endpoint-independent-mapping.
356                               Refer section 4 of RFC 4787.";
357                         }
358
359                         enum "adm"  {
360                            description
361                               "address-dependent-mapping.
362                               Refer section 4 of RFC 4787.";
363                         }
364
365                         enum "edm"  {
366                            description
367                               "address-and-port-dependent-mapping.
368                               Refer section 4 of RFC 4787.";
369                         }
370                      }
371                     description
372                       "Indicates the type of a NAT mapping.";
373                }
374                leaf nat-filtering-type {
375                     type enumeration {
376                         enum "eif"  {
377                            description
378                               "endpoint-independent- filtering.
379                               Refer section 5 of RFC 4787.";
380                         }
381
382                         enum "adf"  {
383                            description
384                               "address-dependent- filtering.
385                               Refer section 5 of RFC 4787.";
386                         }
387
388                         enum "edf"  {
389                            description
390                               "address-and-port-dependent- filtering.
391                               Refer section 5 of RFC 4787.";
392                         }
393                        }
394                     description
395                       "Indicates the type of a NAT filtering.";
396                }
397
398                leaf port-quota {
399                     type uint16;
400                     description
401                       "Configures a port quota to be assigned per
402                       subscriber.";
403                }
404
405                container port-set {
406                     description
407                      "Manages port-set assignments.";
408
409                     leaf port-set-enable {
410                         type boolean;
411                         description
412                            "Enable/Disable port set assignment.";
413                     }
414
415                     leaf port-set-size {
416                          type uint16;
417                          description
418                           "Indicates the size of assigned port
419                           sets.";
420                     }
421
422                     leaf port-set-timeout {
423                        type uint32;
424                        description
425                            "Inactivty timeout for port sets.";
426                     }
427                }
428
429               leaf port-randomization-enable {
430                  type boolean;
431                  description
432                    "Enable/disable port randomization
433                      feature.";
434               }
435
436               leaf port-preservation-enable {
437                  type boolean;
438                  description
439                    "Indicates whether the PCP server should
440                      preserve the internal port number.";
441               }
442
443               leaf port-range-preservation-enable {
444                    type boolean;
445                    description
446                     "Indicates whether the NAT device should
447                     preserve the internal port range.";
448                }
449
450               leaf port-parity-preservation-enable {
451                  type boolean;
452                  description
453                    "Indicates whether the PCP server should
454                      preserve the port parity of the
455                      internal port number.";
456               }
457               leaf address-roundrobin-enable {
458                  type boolean;
459                  description
460                    "Enable/disable address allocation
461                    round robin.";
462                }
463
464           uses timeouts;
465           container logging-info {
466                description
467                  "Information about Logging NAT events";
468
469                leaf destination-address {
470                     type inet:ipv4-prefix;
471                     // mandatory true;
472                     description
473                       "Address of the collector that receives
474                       the logs";
475                }
476                leaf destination-port {
477                     type inet:port-number;
478                     // mandatory true;
479                     description
480                        "Destination port of the collector.";
481                }
482
483           }
484           container connection-limit {
485                description
486                  "Information on the config parameters that
487                   rate limit the translations based on various
488                   criteria";
489
490                leaf limit-per-subscriber {
491                     type uint32;
492                     description
493                       "Maximum number of NAT mappings per
494                       subscriber.";
495                }
496                leaf limit-per-vrf {
497                     type uint32;
498                     description
499                       "Maximum number of NAT mappings per
500                       VLAN/VRF.";
501                }
502                leaf limit-per-subnet {
503                     type inet:ipv4-prefix;
504                     description
505                      "Maximum number of NAT mappings per
506                       subnet.";
507                }
508                leaf limit-per-instance {
509                     type uint32;
510                     // mandatory true;
511                     description
512                       "Maximum number of NAT mappings per
513                       instance.";
514                }
515           }
516           container mapping-limit {
517                description
518                  "Information on the config parameters that
519                   rate limit the mappings based on various
520                   criteria";
521
522                leaf limit-per-subscriber {
523                     type uint32;
524                     description
525                       "Maximum number of NAT mappings per
526                       subscriber.";
527                }
528                leaf limit-per-vrf {
529                     type uint32;
530                     description
531                       "Maximum number of NAT mappings per
532                       VLAN/VRF.";
533                }
534                leaf limit-per-subnet {
535                     type inet:ipv4-prefix;
536                     description
537                      "Maximum number of NAT mappings per
538                       subnet.";
539                }
540                leaf limit-per-instance {
541                     type uint32;
542                     // mandatory true;
543                     description
544                       "Maximum number of NAT mappings per
545                       instance.";
546                }
547           }
548           leaf ftp-alg-enable {
549                type boolean;
550                description
551                   "Enable/Disable FTP ALG";
552           }
553
554           leaf dns-alg-enable {
555                type boolean;
556                description
557                   "Enable/Disable DNSALG";
558           }
559
560           leaf tftp-alg-enable {
561                type boolean;
562                description
563                   "Enable/Disable TFTP ALG";
564           }
565
566           leaf msrpc-alg-enable {
567                type boolean;
568                description
569                   "Enable/Disable MS-RPC ALG";
570           }
571
572           leaf netbios-alg-enable {
573                type boolean;
574                description
575                   "Enable/Disable NetBIOS ALG";
576           }
577
578           leaf rcmd-alg-enable {
579                type boolean;
580                description
581                   "Enable/Disable rcmd ALG";
582           }
583
584           leaf ldap-alg-enable {
585                type boolean;
586                description
587                   "Enable/Disable LDAP ALG";
588           }
589
590           leaf sip-alg-enable {
591                type boolean;
592                description
593                   "Enable/Disable SIP ALG";
594           }
595
596           leaf rtsp-alg-enable {
597                type boolean;
598                description
599                   "Enable/Disable RTSP ALG";
600           }
601
602           leaf h323-alg-enable {
603                type boolean;
604                description
605                   "Enable/Disable H323 ALG";
606           }
607
608           leaf all-algs-enable {
609                type boolean;
610                description
611                   "Enable/Disable all the ALGs";
612           }
613
614           container notify-pool-usage {
615                description
616                   "Notification of Pool usage when certain criteria
617                    is met";
618
619                leaf pool-id {
620                     type uint32;
621                     description
622                       "Pool-ID for which the notification
623                       criteria is defined";
624                }
625
626                leaf notify-pool-hi-threshold {
627                     type percent;
628                     // mandatory true;
629                     description
630                      "Notification must be generated when the
631                      defined high threshold is reached.
632                      For example, if a notification is
633                      required when the pool utilization reaches
634                      90%, this configuration parameter must
635                      be set to 90%";
636                }
637
638                leaf notify-pool-low-threshold {
639                     type percent;
640                     description
641                      "Notification must be generated when the defined
642                      low threshold is reached.
643                      For example, if a notification is required when
644                      the pool utilization reaches below 10%,
645                      this configuration parameter must be set to
646                      10%";
647                }
648           }
649           list nat64-prefixes {
650                key nat64-prefix-id;
651
652                description
653                 "Provides one or a list of NAT64 prefixes
654                 With or without a list of destination IPv4 prefixes.
655
656                 Destination-based Pref64::/n is discussed in
657                 Section 5.1 of [RFC7050]). For example:
658                 192.0.2.0/24 is mapped to 2001:db8:122:300::/56.
659                 198.51.100.0/24 is mapped to 2001:db8:122::/48.";
660
661                leaf nat64-prefix-id {
662                    type uint32;
663                    description
664                      "An identifier of the NAT64 prefix.";
665                }
666
667                leaf nat64-prefix {
668                    type inet:ipv6-prefix;
669                    default "64:ff9b::/96";
670                    description
671                      "A NAT64 prefix. Can be NSP or WKP [RFC6052].";
672                }
673
674                list destination-ipv4-prefix {
675
676                     key ipv4-prefix-id;
677
678                     description
679                       "An IPv4 prefix/address.";
680
681                     leaf ipv4-prefix-id {
682                        type uint32;
683                        description
684                         "An identifier of the IPv4 prefix/address.";
685                     }
686
687                     leaf ipv4-prefix {
688                        type inet:ipv4-prefix;
689                        description
690                         "An IPv4 address/prefix. ";
691                     }
692                }
693           }
694      } //nat-parameters group
695
696      container nat-config {
697          description
698           "NAT";
699
700          container nat-instances {
701             description
702               "nat instances";
703
704              list nat-instance {
705
706                  key "id";
707
708                  description
709                     "A NAT instance.";
710
711                  leaf id {
712                      type uint32;
713                      description
714                       "NAT instance identifier.";
715                  }
716
717                  leaf enable {
718                      type boolean;
719                      description
720                       "Status of the the NAT instance.";
721                  }
722
723                  uses nat-parameters;
724
725                  container mapping-table {
726                     description
727                       "NAT dynamic mapping table used to track
728                       sessions";
729
730                       list mapping-entry {
731                            key "index";
732                            description
733                              "NAT mapping entry.";
734                            uses mapping-entry;
735                       }
736                  }
737              }
738          }
739      }
740
741      /*
742       * NAT State
743       */
744
745      container nat-state {
746
747           config false;
748
749           description
750              "nat-state";
751
752           container nat-instances {
753               description
754                   "nat instances";
755
756               list nat-instance {
757                   key "id";
758
759                   description
760                    "nat instance";
761
762                   leaf id {
763                       // FIXME changed int32 to uint32 to align with nat-config (authors of draft notified)
764                       type uint32;
765                        description
766                         "The identifier of the nat instance.";
767                   }
768
769                   container nat-capabilities {
770                      description
771                         "NAT Capabilities";
772
773                       leaf nat44-support {
774                           type boolean;
775                            description
776                              "Indicates NAT44 support";
777                        }
778
779                        leaf nat64-support {
780                            type boolean;
781                             description
782                              "Indicates NAT64 support";
783                        }
784
785                        leaf static-mapping-support {
786                           type boolean;
787                            description
788                              "Indicates whether static mappings are
789                              supported.";
790                        }
791
792                        leaf port-set-support {
793                            type boolean;
794                             description
795                              "Indicates port set assignment
796                              support ";
797                        }
798
799                        leaf port-randomization-support {
800                           type boolean;
801                           description
802                            "Indicates whether port randomization is
803                              supported.";
804                        }
805
806                        leaf port-range-preservation-support {
807                             type boolean;
808                             description
809                             "Indicates whether port range
810                             preservation is supported.";
811                        }
812
813                        leaf port-preservation-suport {
814                             type boolean;
815                             description
816                              "Indicates whether port preservation
817                                is supported.";
818                        }
819
820                        leaf port-parity-preservation-support {
821                             type boolean;
822                             description
823                              "Indicates whether port parity
824                              preservation is supported.";
825                        }
826
827                        leaf address-roundrobin-support {
828                             type boolean;
829                             description
830                              "Indicates whether address allocation
831                              round robin is supported.";
832                        }
833
834           leaf ftp-alg-support {
835                type boolean;
836                description
837                   "Indicates whether FTP ALG is supported";
838           }
839
840           leaf dns-alg-support {
841                type boolean;
842                description
843                   "Indicates whether DNSALG is supported";
844           }
845
846           leaf tftp-support {
847                type boolean;
848                description
849                   "Indicates whether TFTP ALG is supported";
850           }
851
852           leaf msrpc-alg-support {
853                type boolean;
854                description
855                   "Indicates whether MS-RPC ALG is supported";
856           }
857
858           leaf netbios-alg-support {
859                type boolean;
860                description
861                   "Indicates whether NetBIOS ALG is supported";
862           }
863
864           leaf rcmd-alg-support {
865                type boolean;
866                description
867                   "Indicates whether rcmd ALG is supported";
868           }
869
870           leaf ldap-alg-support {
871                type boolean;
872                description
873                   "Indicates whether LDAP ALG is supported";
874           }
875
876           leaf sip-alg-support {
877                type boolean;
878                description
879                   "Indicates whether SIP ALG is supported";
880           }
881
882           leaf rtsp-alg-support {
883                type boolean;
884                description
885                   "Indicates whether RTSP ALG is supported";
886           }
887
888           leaf h323-alg-support {
889                type boolean;
890                description
891                   "Indicates whether H323 ALG is supported";
892           }
893
894           leaf paired-address-pooling-support {
895                type boolean;
896                description
897                 "Indicates whether paired-address-pooling is
898                 supported";
899           }
900
901           leaf endpoint-independent-mapping-support {
902                 type boolean;
903                 description
904                 "Indicates whether endpoint-independent-mapping
905                 in Section 4 of RFC 4787 is supported.";
906           }
907
908           leaf address-dependent-mapping-support {
909                type boolean;
910                description
911                "Indicates whether endpoint-independent-mapping
912                in Section 4 of RFC 4787 is supported.";
913           }
914
915           leaf address-and-port-dependent-mapping-support {
916                type boolean;
917                description
918                "Indicates whether endpoint-independent-mapping in
919                section 4 of RFC 4787 is supported.";
920          }
921
922          leaf endpoint-independent-filtering-support {
923                type boolean;
924               description
925                "Indicates whether endpoint-independent-mapping in
926                section 5 of RFC 4787 is supported.";
927           }
928
929           leaf address-dependent-filtering {
930               type boolean;
931               description
932               "Indicates whether endpoint-independent-mapping in
933               section 5 of RFC 4787 is supported.";
934           }
935
936           leaf address-and-port-dependent-filtering {
937               type boolean;
938               description
939               "Indicates whether endpoint-independent-mapping in
940               section 5 of RFC 4787 is supported.";
941           }
942
943           leaf stealth-mode-support {
944               type boolean;
945               description
946               "Indicates whether to respond for unsolicited
947               traffic.";
948           }
949
950                  }
951
952                   container nat-current-config {
953                      description
954                           "current config";
955
956                      uses nat-parameters;
957                   }
958
959                   container mapping-table {
960                       description
961                           "Mapping table";
962                       list mapping-entry {
963                           key "index";
964                           description
965                         "mapping entry";
966                           uses mapping-entry;
967                       }
968                   }
969
970                   container statistics {
971                        description
972                          "Statistics related to the NAT instance";
973
974                        leaf total-mappings {
975                             type uint32;
976                             description
977                              "Total number of NAT Mappings present
978                              at the time. This includes all the
979                              static and dynamic mappings";
980                        }
981                        leaf total-tcp-mappings {
982                             type uint32;
983                             description
984                              "Total number of TCP Mappings present
985                              at the time.";
986                        }
987                        leaf total-udp-mappings {
988                             type uint32;
989                             description
990                              "Total number of UDP Mappings present
991                              at the time.";
992                        }
993                        leaf total-icmp-mappings {
994                             type uint32;
995                             description
996                              "Total number of ICMP Mappings present
997                              at the time.";
998                        }
999                        container pool-stats {
1000                             description
1001                                "Statistics related to Pool usage";
1002                             leaf pool-id {
1003                                  type uint32;
1004                                  description
1005                                   "Unique Identifier that represents
1006                                   a pool";
1007                             }
1008                             leaf address-allocated {
1009                                  type uint32;
1010                                  description
1011                                     "Number of allocated addresses in
1012                                     the pool";
1013                             }
1014                             leaf address-free {
1015                                  type uint32;
1016                                  description
1017                                    "Number of free addresses in
1018                                    the pool.The sum of free
1019                                    addresses and allocated
1020                                    addresses are the total
1021                                    addresses in the pool";
1022                             }
1023                             container port-stats {
1024                                  description
1025                                    "Statistics related to port
1026                                    usage.";
1027
1028                                  leaf ports-allocated {
1029                                       type uint32;
1030                                       description
1031                                          "Number of allocated ports
1032                                          in the pool";
1033                                  }
1034
1035                                  leaf ports-free {
1036                                       type uint32;
1037                                       description
1038                                          "Number of free addresses
1039                                          in the pool";
1040                                  }
1041                             }
1042                        }
1043                   } //statistics
1044               } //nat-instance
1045           } //nat-instances
1046      } //nat-state
1047      /*
1048       * Notifications
1049       */
1050      notification nat-event {
1051           description
1052            "Notifications must be generated when the defined
1053             high/low threshold is reached. Related configuration
1054             parameters must be provided to trigger
1055             the notifications.";
1056
1057           leaf id {
1058                 type leafref {
1059                 path
1060                 "/nat-state/nat-instances/"
1061                + "nat-instance/id";
1062                 }
1063                 description
1064                  "NAT instance ID.";
1065           }
1066
1067           leaf notify-pool-threshold {
1068                type percent;
1069                 // mandatory true;
1070                   description
1071                        "A treshhold has been fired.";
1072           }
1073      }
1074 } //module nat