3 namespace "urn:opendaylight:l3vpn";
5 import ietf-inet-types {prefix inet;}
6 revision "2015-01-11" {
7 description "L3 VPN Service module";
12 enum untagged { value 1; }
13 enum vlan { value 2; }
14 enum qinq { value 3; }
16 description "vpn port type, can be untagged, vlan and qinq, default is untagged";
20 leaf ctag {type uint16;}
21 leaf stag {type uint16;}
22 description "optional VLAN tag values";
24 typedef l3service_result {
26 enum "success" { value 0; description "operation successful";}
27 enum "error" { value 1; description "Error happened";}
29 description "Result types";
33 leaf tenantId { type uint32;}
34 leaf vpn_name { type string;}
37 grouping vpn_instance_info {
38 leaf routeDistinguisher{ type string; }
39 leaf-list exportrts{ type string;}
40 leaf-list importrts{ type string;}
43 grouping vpn_port_attributes {
44 leaf port_name {type string;}
45 leaf port_type {type port_type;}
46 uses vlan_info; /* optional */
47 leaf mac_address {type string;}
48 leaf ip_address {type string;}
49 leaf prefix_length {type uint8;}
52 rpc createVpnInstance {
53 description "Create a new L3 VPN";
56 uses vpn_instance_info;
59 leaf result {type l3service_result;}
63 rpc deleteVpnInstance {
64 description "Delete L3 VPN";
65 input { uses vpn_key;}
67 leaf result {type l3service_result;}
72 input { uses vpn_key;}
73 output {uses vpn_instance_info;}
79 uses vpn_port_attributes;
82 leaf result {type l3service_result;}
85 rpc remove_port_from_vpn{
88 uses vpn_port_attributes;
91 leaf result {type l3service_result;}