Merge "BUG-1618 Handle pending writes in ssh netconfclient"
[controller.git] / opendaylight / md-sal / model / model-flow-service / src / main / yang / flow-node-inventory.yang
index d717e87f761ea5b8c0897d6b4fc87d4fedf89581..64c3d9c467bdeeae7726f4f462ab54a75f5e7775 100644 (file)
@@ -4,7 +4,6 @@ module flow-node-inventory {
 
     import yang-ext {prefix ext; revision-date "2013-07-09";}
     import ietf-inet-types {prefix inet; revision-date "2010-09-24";}
-    import ietf-yang-types {prefix yang; revision-date "2010-09-24";}
     import opendaylight-port-types {prefix port;revision-date "2013-09-25";}
     import opendaylight-inventory {prefix inv;revision-date "2013-08-19";}
     import opendaylight-table-types {prefix table;revision-date "2013-10-26";}
@@ -15,7 +14,60 @@ module flow-node-inventory {
     revision "2013-08-19" {
         description "Flow Capable Node extensions to the Inventory model";
     }
-
+    
+    identity feature-capability {
+    }
+    
+    identity flow-feature-capability-flow-stats {
+        description "Flow statistics"; 
+        base feature-capability;      
+    }
+    
+    identity flow-feature-capability-table-stats {
+        description "Table statistics";
+        base feature-capability;        
+    }
+    
+    identity flow-feature-capability-port-stats {
+        description "Port statistics";
+        base feature-capability;        
+    }
+    
+    identity flow-feature-capability-stp {
+        description "802.1d spanning tree";
+        base feature-capability;        
+    }
+    
+    identity flow-feature-capability-reserved {
+        description "Reserved, must be zero";
+        base feature-capability;        
+    }
+    
+    identity flow-feature-capability-ip-reasm {
+        description "Can reassemble IP fragments";
+        base feature-capability;        
+    }
+    
+    identity flow-feature-capability-queue-stats {
+        description "Queue statistics";
+        base feature-capability;        
+    }
+    
+    identity flow-feature-capability-arp-match-ip {
+        description "Match IP addresses in ARP pkts";
+        base feature-capability;        
+    }
+    
+    identity flow-feature-capability-group-stats {
+        description "Group statistics";
+        base feature-capability;        
+    }
+    
+    identity flow-feature-capability-port-blocked {
+        description "Switch will block looping ports";
+        base feature-capability;        
+    }
+    
     grouping feature {
         leaf support-state {
             type inv:support-type;
@@ -39,7 +91,7 @@ module flow-node-inventory {
     }
 
     typedef flow-id {
-        type uint32; // Note: This doesn't really belong here, and not sure if unint32 is right
+        type inet:uri;
     }
 
     grouping tables {
@@ -71,8 +123,14 @@ module flow-node-inventory {
         }
     }
 
-    grouping flow-node {
+    grouping ip-address-grouping {
+        leaf ip-address {
+            description "IP address of a flow capable node.";
+            type inet:ip-address;
+        }
+    }
 
+    grouping flow-node {
         leaf manufacturer {
             type string;
         }
@@ -92,10 +150,12 @@ module flow-node-inventory {
         uses tables;
         uses group:groups;
         uses meters;
+        uses ip-address-grouping;
         // TODO: ports
         
         container supported-match-types {
             list match-type {
+               key "match";
                 uses feature;
                 leaf match {
                     type string; // FIXME: Add identity
@@ -106,6 +166,7 @@ module flow-node-inventory {
         
         container supported-instructions {
             list instruction-type {
+               key "instruction";
                 uses feature;
                 leaf instruction {
                     type string; // FIXME: Add identity
@@ -115,6 +176,7 @@ module flow-node-inventory {
 
         container supported-actions {
             list action-type {
+               key "action";
                 uses feature;
 
                 leaf action {
@@ -122,8 +184,35 @@ module flow-node-inventory {
                 }
             }
         }
+        
+        container switch-features {
+            
+            leaf max_buffers {
+                type uint32;
+            }
+            
+            leaf max_tables {
+                type uint8;
+            }
+            
+            leaf-list capabilities {
+                type identityref {
+                    base feature-capability;
+                }
+            }
+            
+        }
     }
-    
+
+    rpc get-node-ip-address {
+        input {
+            uses "inv:node-context-ref";
+        }
+        output {
+            uses ip-address-grouping;
+        }
+    }
+
     grouping flow-node-connector {
 
         uses port:flow-capable-port;
@@ -149,9 +238,22 @@ module flow-node-inventory {
         ext:augment-identifier "flow-capable-node-connector-update-fields";
         uses flow-node-connector;
     }
-
+    
     augment "/inv:node-connector-updated" {
         ext:augment-identifier "flow-capable-node-connector-updated";
         uses flow-node-connector;
     }
-}
\ No newline at end of file
+
+    augment "/inv:nodes/inv:node/table" {
+        ext:augment-identifier "flow-cookie-mapping";
+        list flow-cookie-map {
+            key "cookie";
+            leaf cookie {
+                type flow:flow-cookie;
+            }
+            leaf-list flow-ids {
+                type flow-id;
+            }
+        }
+    }
+}