X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fmodel%2Fmodel-flow-base%2Fsrc%2Fmain%2Fyang%2Fflow-types.yang;h=29ea8ddf1889bc8d3cfec6e37d070896fc0bd3ae;hp=634c8dbd723832378ee7d62230c3d29628cdc5e9;hb=cd196a492c531331f201031843d687bea3ed99c3;hpb=5544e382e7f30cd9cbc3a5fbf47daba7e2bda0ad diff --git a/opendaylight/md-sal/model/model-flow-base/src/main/yang/flow-types.yang b/opendaylight/md-sal/model/model-flow-base/src/main/yang/flow-types.yang index 634c8dbd72..29ea8ddf18 100644 --- a/opendaylight/md-sal/model/model-flow-base/src/main/yang/flow-types.yang +++ b/opendaylight/md-sal/model/model-flow-base/src/main/yang/flow-types.yang @@ -2,193 +2,87 @@ module opendaylight-flow-types { namespace "urn:opendaylight:flow:types"; prefix flow; - import ietf-inet-types {prefix inet;} - import opendaylight-match-types {prefix match;} - import ietf-yang-types {prefix yang;} - import opendaylight-l2-types {prefix l2t;} + import ietf-inet-types {prefix inet; revision-date "2010-09-24";} + import ietf-yang-types {prefix yang; revision-date "2010-09-24";} + import opendaylight-match-types {prefix match; revision-date "2013-10-26";} + import opendaylight-action-types {prefix action;} - revision "2013-08-19" { + revision "2013-10-26" { description "Initial revision of flow service"; } - - typedef vlan-cfi { - type int32; - } - - grouping address { - choice address { - case ipv4 { - leaf ipv4-address { - type inet:ipv4-prefix; - } - } - case ipv6 { - leaf ipv6-address { - type inet:ipv6-prefix; - } + grouping instruction-list { + list instruction { + key "order"; + leaf order { + type int32; } + uses instruction; } - } - - grouping action { - choice action { - case output-action { - leaf-list output-node-connector { - type inet:uri; - } - } - - case controller-action { - leaf max-length { - type uint16 { - range "0..65294"; - } - } - } - - case set-queue-action { - leaf queue { - type string; // TODO: define queues - } - } - - case pop-mpls-action { - leaf ethernet-type { - type uint16; // TODO: define ethertype type - } - } - - case set-mpls-ttl-action { - leaf mpls-ttl { - type uint8; - } - } + } - case set-nw-ttl-action { - leaf nw-ttl { + grouping instruction { + choice instruction { + case go-to-table { + leaf table_id { type uint8; } } - - case push-pbb-action { - - } - - case push-mpls-action { - - } - - case drop-action { - } - - case flood-action { - } - - case flood-all-action { - } - case hw-path-action { + case write-metadata { + leaf metadata { + type uint64; + } + + leaf metadata-mask { + type uint64; + } } - case loopback-action { + case write-actions { + uses action:action-list; } - case pop-vlan-action { + case apply-actions { + uses action:action-list; } - case push-vlan-action { - leaf tag { // TPID - 16 bits - type int32; - } - leaf pcp { // PCP - 3 bits - type int32; - } - leaf cfi { // CFI - 1 bit (drop eligible) - type vlan-cfi; - } - leaf vlan-id { // VID - 12 bits - type l2t:vlan-id; - } -// leaf tci { //TCI = [PCP + CFI + VID] -// } -// leaf header { //header = [TPID + TCI] -// } - } - case set-dl-dst-action { - leaf address { - type yang:mac-address; - } + case clear-actions { + uses action:action-list; } - case set-dl-src-action { - leaf address { - type yang:mac-address; + case meter { + leaf meter { + type string; } - } - case set-dl-type-action { - leaf dl-type { - type l2t:ether-type; + + leaf meter-id { + type uint32; } - } - case set-next-hop-action { - uses address; - } - case set-nw-dst-action { - uses address; - } - case set-nw-src-action{ - uses address; - } - case set-nw-tos-action { - leaf tos { - type int32; - } - } - - case set-tp-dst-action { - leaf port { - type inet:port-number; - } - } - case set-tp-src-action { - leaf port { - type inet:port-number; - } - } - case set-vlan-cfi-action { - leaf vlan-cfi { - type vlan-cfi; - } - } - case set-vlan-id-action { - leaf vlan-id { - type l2t:vlan-id; - } - } - case set-vlan-pcp-action { - leaf vlan-pcp { - type l2t:vlan-pcp; - } - } - case sw-path-action { - } - - + } } } - - grouping flow { - container match { - uses match:match; + + typedef flow-mod-flags { + type bits { + bit CHECK_OVERLAP; + bit RESET_COUNTS; + bit NO_PKT_COUNTS; + bit NO_BYT_COUNTS; + bit SEND_FLOW_REM; } - list action { - key "order"; - leaf order { - type int32; - } - uses action; + } + + typedef removed_reason_flags { + type bits { + bit IDLE_TIMEOUT; + bit HARD_TIMEOUT; + bit DELETE; + bit GROUP_DELETE; } + } + + grouping generic_flow_attributes { leaf priority { type uint16; } @@ -204,6 +98,64 @@ module opendaylight-flow-types { leaf cookie { type uint64; } + + leaf table_id { + type uint8; + } + } + + grouping flow { + container match { + uses match:match; + } + + container instructions { + uses instruction-list; + } + + uses generic_flow_attributes; + + leaf container-name { + type string; + } + + leaf cookie_mask { + type uint64; + } + + leaf buffer_id { + type uint32; + } + + leaf out_port { + type uint64; + } + + leaf out_group { + type uint32; + } + + leaf flags { + type flow-mod-flags; + } + + leaf flow-name { + type string; + } + + leaf installHw { + type boolean; + } + + leaf barrier { + type boolean; + } + + leaf strict { + type boolean; + default "false"; + } + } grouping flow-statistics { @@ -238,4 +190,32 @@ module opendaylight-flow-types { type yang:counter64; } } + + grouping flow-mod-removed { + uses generic_flow_attributes; + + leaf removed_reason { + type removed_reason_flags; + } + + leaf duration_nsec { + type uint32; + } + + leaf duration_sec { + type uint32; + } + + leaf packet_count { + type uint64; + } + + leaf byte_count { + type uint64; + } + + container match { + uses match:match; + } + } } \ No newline at end of file