--- /dev/null
+module controller-openflow {
+
+ namespace "urn:opendaylight:controller:openflow";
+ prefix "of";
+ import controller-network {prefix cn;}
+
+
+ revision 2013-05-20 {
+ description "Initial demo";
+ }
+
+
+
+
+
+ typedef datapath-id {
+ type string {
+ length 16;
+ }
+ }
+
+
+ augment "/cn:network/cn:topologies/cn:topology/cn:types" {
+ leaf openflow {type string;}
+ }
+
+ augment "/cn:network/cn:topologies/cn:topology/cn:links/cn:link/cn:source" {
+ when "../../../cn:types/of:openflow";
+
+ leaf logical-port {
+ type int32;
+ }
+ }
+
+ augment "/cn:network/cn:topologies/cn:topology/cn:links/cn:link/cn:destination" {
+ when "../../../cn:types/of:openflow";
+
+ leaf logical-port {
+ type int32;
+ }
+ }
+
+ augment "/cn:network/cn:topologies/cn:topology/cn:nodes/cn:node/" {
+ when "../../../cn:types/of:openflow";
+ leaf datapath-id {
+ type datapath-id;
+ }
+ }
+
+ augment "/cn:network/cn:network-elements/cn:network-element" {
+ leaf datapath-id {
+ type datapath-id;
+ }
+
+ container ports {
+ list port {
+ key "logical-port-id";
+
+ leaf logical-port-id {
+ type int32;
+ }
+
+ // Should be replaced with ref to interface
+ leaf physical-name {
+ type string;
+ }
+ }
+ }
+ container flow-tables {
+ list flow-table {
+ key "flow-table-id";
+ leaf flow-table-id {
+ type string;
+ }
+
+ }
+ }
+ }
+}
\ No newline at end of file