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

    namespace "urn:ietf:params:xml:ns:yang:vpp-routing";
    prefix "vpp-routing";
    description "General extensions for routes to be able to use VPP route defining apis";

    revision 2016-12-14 {
        description "Initial revision.";
    }

    import yang-ext {
        prefix "ext";
    }

    import vpp-classifier {
        prefix "classifier";
    }
    
    import ietf-routing {
        prefix "ietf-r";
    }

    typedef vni-reference{
        type uint32;
        description "Vrf index reference";
    }

    grouping vpp-route-attributes {
        //lookup_in_vrf
        leaf secondary-vrf{
            type vni-reference;
            description "Optional secondary vrf used to lookup in";
        }

        leaf classify-table{
        // classify_table_index + is_classify flag
            type classifier:classify-table-ref;
            description "Optional reference to classify table";
        }
    }

    grouping vpp-routing-protocol-attributes{
        //vrf_id
        leaf primary-vrf{
            type vni-reference;
            mandatory true;
            description "Main vrf associated to route";
        }
    }

    augment /ietf-r:routing/ietf-r:routing-instance/ietf-r:routing-protocols/ietf-r:routing-protocol{
        ext:augment-identifier "routing-protocol-vpp-attr";
        container vpp-protocol-attributes {
            presence "Config attributes";
            uses vpp-routing-protocol-attributes;
        }
    }

    augment /ietf-r:routing-state/ietf-r:routing-instance/ietf-r:routing-protocols/ietf-r:routing-protocol{
        ext:augment-identifier "routing-protocol-state-vpp-attr";
        container vpp-protocol-state-attributes {
            presence "Operational attributes";
            uses vpp-routing-protocol-attributes;
        }
    }
}