Dear authors,

I see that you posted a new version, but there are still some errors
See http://www.claise.be/IETFYANGPageCompilation.html
See https://datatracker.ietf.org/doc/draft-ietf-softwire-dslite-yang/ => YANG validation

OLD:
augment "/nat:nat-module/nat:nat-instances/nat:nat-instance" {

NEW: I guess this should be
augment "/nat:nat-config/nat:nat-instances/nat:nat-instance" {



OLD:
augment "/nat:nat-module/nat:nat-instances/nat:nat-instance/nat:mapping-table/nat:mapping-entry"{

NEW: I guess this should be
augment "/nat:nat-state/nat:nat-instances/nat:nat-instance/nat:mapping-table/nat:mapping-entry"{


Attached is the updated YANG module that validates.

Regards, Benoit



module ietf-dslite-aftr {
    namespace "urn:ietf:params:xml:ns:yang:ietf-dslite-aftr";
    prefix dslite-aftr;

    import ietf-inet-types { prefix inet; }
    import ietf-interfaces { prefix if; }
    import iana-if-type { prefix ianaift; }
    import ietf-nat {prefix nat;}

    organization "Softwire Working Group";
    contact
     "Mohamed Boucadair <[email protected]>
      Christian Jacquenet <[email protected]>
      Senthil Sivakumar <[email protected]>";

   description
      "This module is a YANG module for DS-Lite AFTR
      implementations.

      Copyright (c) 2017 IETF Trust and the persons identified as
      authors of the code.  All rights reserved.

      Redistribution and use in source and binary forms, with or
      without modification, is permitted pursuant to, and subject
      to the license terms contained in, the Simplified BSD License
      set forth in Section 4.c of the IETF Trust's Legal Provisions
      Relating to IETF Documents
      (http://trustee.ietf.org/license-info).

      This version of this YANG module is part of RFC XXXX; see
      the RFC itself for full legal notices.";

    revision 2017-08-10 {
      description "The module augments also the Interface module.";
       reference "-ietf-04";
    }

    revision 2017-07-27 {
      description "Redesign the module as an augment of the NAT YANG module.";
       reference "-ietf-04";
    }

    revision 2017-07-03 {
      description "Fix some minor points.";
       reference "-ietf-03";
    }

    revision 2017-01-03 {
      description "Fixed a compilation error:
        https://github.com/mbj4668/pyang/issues/296.";;
       reference "-ietf-02";
    }

    revision 2016-11-14 {
      description "Integrates the comments from Ian:
      add B4 module, add an MSS leaf, add more details about
      logging protocols, and other edits.";
       reference "-ietf-01";
    }

    revision 2016-07-27 {
      description "-00 IETF version.";
       reference "-ietf-00";
    }

    revision 2016-06-13 {
      description "Update the module.";
       reference "-04";
    }

    revision 2015-12-16 {
      description "Fix an error.";
       reference "-03";
    }

    revision 2015-09-01 {
      description "Add port threshold notifications.";
       reference "-02";
    }

    revision 2015-08-31 {
      description "Fix a timeout issue.";
       reference "-01";
    }

    revision 2015-08-17 {
      description "First spec.";
       reference "-00";
    }

// Augment Interface module with DS-Lite Softwire
augment "/if:interfaces/if:interface" {
   when "if:type = 'ianaift:tunnel'";

   description
        "Augments Interface module with AFTR parameters.
         IANA interface types are maintained at this registry:
         https://www.iana.org/assignments/ianaiftype-mib/ianaiftype-mib.

         tunnel (131),       -- Encapsulation interface";

   leaf aftr-ipv6-address {
           type inet:ipv6-address;
           description
             "IPv6 address of the DS-Lite AFTR.";

           reference
              "RFC 6333.";
        }

    leaf aftr-ipv4-address {
        type inet:ipv4-address;
        default "192.0.0.1";

        description
          "IPv4 address of the DS-Lite AFTR.
          192.0.0.1 is reserved for the AFTR element.
          This address can be used to report ICMP
          problems and will appear in traceroute
          outputs.";

        reference
          "RFC 6333.";
    }

    leaf tunnel-mtu {
        type uint16;

        description
            "Configures a tunnel MTU.
            [RFC6908] specifies that since
            fragmentation and reassembly is not
            optimal, the operator should do
            everything possible to eliminate
            the need for it.  If the operator uses
            simple IPv4-in-IPv6 softwire, it is
            recommended that the MTU size of the IPv6
            network between the B4 and the AFTR
            accounts for the additional overhead
            (40 bytes).";

        reference
          "RFC 6908.";
    }

    leaf max-softwire-per-subscriber {
        type uint8;
        default 1;

        description
         "Configures the maximum softwire per subscriber
         feature.

         A subscriber is uniquely identified by means
         of subscriber-mask.

         This policy aims to prevent a misbehaving
         subscriber from mounting several DS-Lite
         softwires that would consume additional AFTR
         resources (e.g., get more external ports if
         the quota were enforced on a per-softwire basis,
         consume extra processing due to a large number
         of active softwires).";

        reference
          "Section 4 of RFC 7785.";
    }

    leaf v6-v4-dscp-preservation {
        type boolean;

        description
         "Copies the DSCP value from the IPv6 header
         and vice versa.

         According to Section 2.10 of [RFC6908],
         operators should use this model
         by provisioning the network such that
         the AFTR copies the DSCP value in the IPv4
         header to the Traffic Class field in
         the IPv6 header, after the encapsulation
         for the downstream traffic.";

        reference
          "Section 2.10 of RFC 6908.";
    }
}
// Augment NAT module with AFTR parameters

augment "/nat:nat-config/nat:nat-instances/nat:nat-instance" {

   description
        "Augments NAT module with AFTR parameters.";

    leaf state-migrate {
        type boolean;
        default true;

        description
         "State migration is enabled by default.

          In the event a new IPv6 address is assigned to the B4 element,
          the AFTR should migrate existing state to be bound to the new
          IPv6 address.  This operation ensures that traffic destined to
          the previous B4's IPv6 address will be redirected to the newer
          B4's IPv6 address.  The destination IPv6 address for tunneling
          return traffic from the AFTR should be the last seen as the B4's
          IPv6 source address from the CPE.

          The AFTR uses the subscriber-mask to determine whether two
          IPv6 addresses belong to the same CPE (e.g., if the
          subscriber-mask is set to 56, the AFTR concludes that
          2001:db8:100:100::1 and 2001:db8:100:100::2 belong to the same
          CPE assigned with 2001:db8:100:100::/56).";

        reference
          "RFC 7785.";
    }

    container mss-clamping {
        description
          "MSS rewriting configuration to avoid IPv6
          fragmentation.";

        leaf mss-clamping-enable {
           type boolean;

           description
             "Enable/disable MSS rewriting feature.";
        }

        leaf mss-value {
          type uint16;
          units "octets";

          description
            "Sets the MSS value to be used for
             MSS rewriting.";
        }
     }
 }

// Augment NAT mapping entry:  Extended NAT44 mapping Entry

augment 
"/nat:nat-state/nat:nat-instances/nat:nat-instance/nat:mapping-table/nat:mapping-entry"{
   description
     "Augments the NAT mapping tables with DS-Lite specifics.";

    leaf b4-ipv6-address {
        type inet:ipv6-address;

        description
            "Corresponds to the IPv6 address
            used by the B4 element.";

        reference
          "RFC 6333.";
     }

   leaf v6-dscp {
        type uint8;

        description
          "DSCP value used at the softwire level
          (i.e., IPv6 header).";
   }

   leaf internal-v4-dscp {
        type uint8;

        description
          "DSCP value of the encapsulated IPv4 packet.";
   }

   leaf external-v4-dscp {
        type uint8;

        description
          "DSCP value of the translated IPv4 packet
           as marked by the AFTR.";
   }
 }
}
_______________________________________________
Softwires mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/softwires

Reply via email to