summaryrefslogtreecommitdiffstats
path: root/routing/routing-api/src/main/yang/vpp-routing-ra.yang
blob: 7f396feaaf44ae0afe76da1d2b139ff09ad2dd31 (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
module vpp-routing-ra {

    namespace "urn:ietf:params:xml:ns:yang:vpp-routing-ra";
    prefix "vpp-routing";
    description "General extensions for routing advertisments message configuration provided by VPP APIs";

    revision 2017-05-02 {
        description "Changed namespace";
    }

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

    import yang-ext {
        prefix "ext";
    }

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

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

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