1 module openflowplugin-extension-general {
4 namespace "urn:opendaylight:openflowplugin:extension:general";
5 prefix "openflowplugin-extension-general";
7 import yang-ext {prefix ext; revision-date "2013-07-09";}
8 import flow-node-inventory {prefix fni; revision-date 2013-08-19; }
9 import opendaylight-inventory {prefix inv;revision-date "2013-08-19";}
10 import sal-flow {prefix sal-flow;revision-date "2013-08-19";}
11 import sal-group {prefix sal-group;revision-date "2013-09-18";}
12 import packet-processing {prefix sal-packet;revision-date "2013-07-09";}
13 import opendaylight-flow-statistics {prefix odl-flow-stats;revision-date "2013-08-19";}
14 import opendaylight-group-statistics {prefix odl-group-stats;revision-date "2013-11-11";}
15 import opendaylight-direct-statistics {prefix odl-direct-stats;revision-date "2016-05-11";}
19 "Everything for a vendor who want to implement openflow extensions.";
21 revision "2014-07-14" {
22 description "Initial revision";
25 identity extension-key {
26 description "Base identity for all extension keys.";
29 grouping general-extension-grouping {
36 description "A vendor has to augment this container.";
40 grouping general-extension-list-grouping {
43 uses general-extension-grouping;
50 // MATCH augmentations
52 augment "/sal-flow:add-flow/sal-flow:input/sal-flow:match" {
53 ext:augment-identifier "general-aug-match-rpc-add-flow";
54 uses general-extension-list-grouping;
56 augment "/sal-flow:remove-flow/sal-flow:input/sal-flow:match" {
57 ext:augment-identifier "general-aug-match-rpc-remove-flow";
58 uses general-extension-list-grouping;
60 augment "/sal-flow:update-flow/sal-flow:input/sal-flow:original-flow/sal-flow:match" {
61 ext:augment-identifier "general-aug-match-rpc-update-flow-original";
62 uses general-extension-list-grouping;
64 augment "/sal-flow:update-flow/sal-flow:input/sal-flow:updated-flow/sal-flow:match" {
65 ext:augment-identifier "general-aug-match-rpc-update-flow-updated";
66 uses general-extension-list-grouping;
70 augment "/inv:nodes/inv:node/fni:table/fni:flow/fni:match" {
71 ext:augment-identifier "general-aug-match-nodes-node-table-flow";
72 uses general-extension-list-grouping;
76 augment "/sal-flow:switch-flow-removed/sal-flow:match" {
77 ext:augment-identifier "general-aug-match-notif-switch-flow-removed";
78 uses general-extension-list-grouping;
80 augment "/sal-packet:packet-received/sal-packet:match" {
81 ext:augment-identifier "general-aug-match-notif-packet-in";
82 uses general-extension-list-grouping;
84 augment "/odl-flow-stats:flows-statistics-update/odl-flow-stats:flow-and-statistics-map-list/odl-flow-stats:match" {
85 ext:augment-identifier "general-aug-match-notif-update-flow-stats";
86 uses general-extension-list-grouping;
89 augment "/odl-direct-stats:get-flow-statistics/odl-direct-stats:output/odl-direct-stats:flow-and-statistics-map-list/odl-direct-stats:match" {
90 ext:augment-identifier "general-aug-match-rpc-output-flow-stats";
91 uses general-extension-list-grouping;
94 // VENDOR EXAMPLE -- testing purposes -> remove later!
95 augment "/inv:nodes/inv:node/fni:table/fni:flow/fni:match/extension-list/extension" {
96 ext:augment-identifier "vendor-xxx1";
97 uses vendor-xxx-grouping;
99 augment "/sal-flow:add-flow/sal-flow:input/sal-flow:match/extension-list/extension" {
100 ext:augment-identifier "vendor-xxx2";
101 uses vendor-xxx-grouping;
103 grouping vendor-xxx-grouping {