summaryrefslogtreecommitdiffstats
path: root/routing/routing-api/src/main/yang/vpp-routing-ra@2017-05-02.yang
blob: 87dfdbd57d7e11fddf59c43ec9a459f1df6140e8 (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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
module vpp-routing-ra {

    namespace "urn:ietf:params:xml:ns:yang:vpp-routing-ra";
    prefix "vpp-routing";

    import yang-ext {
        prefix "ext";
    }

    import hc2vpp-ietf-routing {
        prefix "ietf-r";
    }

    import hc2vpp-ietf-ipv6-unicast-routing {
        prefix "v6ur";
    }

    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 hc2vpp-ietf-routing module
         with VPP specific routing advertisments features.

         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-05-02 {
        description "Changed namespace";
    }

    revision 2017-03-15 {
        description "Initial revision.";
    }

    grouping ipv6-router-advertisements-vpp-attributes {
        leaf suppress-link-layer {
            type boolean;
            default false;
            description
                "Dicates not to include the optional source link-layer address
                 in the ICMPv6 router-advertisement messages.";
        }
        leaf send-unicast {
            type boolean;
            default false;
            description
                "Use the source address of the router-solicitation message if availiable.";
        }
        leaf cease {
            type boolean;
            default false;
            description
                "Cease sending ICMPv6 router-advertisement messages.";
        }
        leaf initial-count {
            type uint8 {
                range "1..3";
            }
            default 3;
            description
                "Number of initial ICMPv6 router-advertisement messages sent.";
        }
        leaf initial-interval {
            type uint8 {
                range "1..16";
            }
            units "seconds";
            default 16;
            description
                "Interval between initial ICMPv6 router-advertisement messages.";
        }

        description
            "VPP specific configuration of RA messages. Mapped to sw_interface_ip6nd_ra_config API:
             https://git.fd.io/vpp/tree/src/vnet/ip/ip.api#n196";

        reference
            "https://docs.fd.io/vpp/17.04/clicmd_src_vnet_ip.html#clicmd_ip6_nd";
    }

    grouping control-adv-prefixes-vpp-attributes {
        leaf advertise-router-address {
            type boolean;
            default true;
            description
                "Send full router address in prefix advertisement.";
        }
        leaf vpp-default {
            type boolean;
            default false;
            description
                "Use VPP default values for prefix advertisment.";
        }

        description
            "VPP specific configuration of prefixes in RA messages. Mapped to sw_interface_ip6nd_ra_prefix API:
             https://git.fd.io/vpp/tree/src/vnet/ip/ip.api#n243";

        reference
            "https://docs.fd.io/vpp/17.04/clicmd_src_vnet_ip.html#clicmd_ip6_nd";
    }

    augment "/ietf-r:routing/ietf-r:routing-instance/ietf-r:interfaces/ietf-r:interface/"
            + "v6ur:ipv6-router-advertisements" {
        ext:augment-identifier "ipv6-router-advertisements-vpp-augmentation";
        uses ipv6-router-advertisements-vpp-attributes;
    }

    augment "/ietf-r:routing/ietf-r:routing-instance/ietf-r:interfaces/ietf-r:interface/"
            + "v6ur:ipv6-router-advertisements/v6ur:prefix-list/v6ur:prefix" {
        // TODO control-adv-prefixes/advertise case should be target node (change after yangtools issues are solved)
        ext:augment-identifier "control-adv-prefixes-vpp-augmentation";
        uses control-adv-prefixes-vpp-attributes;
    }
}