X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=openflow-protocol-api%2Fsrc%2Fmain%2Fyang%2Fopenflow-augments.yang;h=a62f91ac0ffc026a39ba5cbe02358c268055e6ea;hb=0d9c30aa4c3e66f92eca0a867d3cf678b07770ca;hp=badda304f6413a59924d5821e0ae41ff0064058e;hpb=0d8525a6df847f3cdac88f8c78b7cb914c51e1c8;p=openflowjava.git diff --git a/openflow-protocol-api/src/main/yang/openflow-augments.yang b/openflow-protocol-api/src/main/yang/openflow-augments.yang index badda304..a62f91ac 100644 --- a/openflow-protocol-api/src/main/yang/openflow-augments.yang +++ b/openflow-protocol-api/src/main/yang/openflow-augments.yang @@ -1,29 +1,330 @@ module openflow-augments { namespace "urn:opendaylight:openflow:augments"; prefix "aug"; + + import yang-ext {prefix ext;} + import ietf-inet-types {prefix inet;} + import ietf-yang-types {prefix yang;} + import openflow-types {prefix oft;} import openflow-protocol {prefix ofproto;} + import openflow-action {prefix ofaction;} + import openflow-instruction {prefix ofinstruction;} import openflow-extensible-match {prefix oxm;} - revision "2013-10-02" { - description "Initial model"; + description "OpenFlow 1.3 - augments model"; } +// OFP_MATCH AUGMENTS augment "/oxm:oxm-container/oxm:match-entries" { - uses oxm:in-port; - /* common augment for fields: - OXM_OF_IN_PORT - OXM_OF_IN_PHY_PORT - */ + ext:augment-identifier "port-number-match-entry"; + leaf port-number { + type oft:port-number; + } + } + augment "/oxm:oxm-container/oxm:match-entries" { + ext:augment-identifier "metadata-match-entry"; + leaf metadata { + type binary; + } + } + augment "/oxm:oxm-container/oxm:match-entries" { + ext:augment-identifier "mask-match-entry"; + leaf mask { + type binary; + } + } + augment "/oxm:oxm-container/oxm:match-entries" { + ext:augment-identifier "mac-address-match-entry"; + leaf mac-address { + type yang:mac-address; + } + } + augment "/oxm:oxm-container/oxm:match-entries" { + ext:augment-identifier "eth-type-match-entry"; + leaf eth-type { + type oft:ether-type; + } + } + augment "/oxm:oxm-container/oxm:match-entries" { + ext:augment-identifier "vlan-vid-match-entry"; + leaf vlan-vid { + type uint16; + } + } + augment "/oxm:oxm-container/oxm:match-entries" { + ext:augment-identifier "vlan-pcp-match-entry"; + leaf vlan-pcp { + type uint8; + } + } + augment "/oxm:oxm-container/oxm:match-entries" { + ext:augment-identifier "dscp-match-entry"; + leaf dscp { + type inet:dscp; + } + } + augment "/oxm:oxm-container/oxm:match-entries" { + ext:augment-identifier "ecn-match-entry"; + leaf ecn { + type uint8; + } + } + augment "/oxm:oxm-container/oxm:match-entries" { + ext:augment-identifier "protocol-number-match-entry"; + leaf protocol-number { + type uint8; + } + } + augment "/oxm:oxm-container/oxm:match-entries" { + ext:augment-identifier "port-match-entry"; + leaf port { + type inet:port-number; + } + } + augment "/oxm:oxm-container/oxm:match-entries" { + ext:augment-identifier "icmpv4-type-match-entry"; + leaf icmpv4-type { + type uint8; + } + } + augment "/oxm:oxm-container/oxm:match-entries" { + ext:augment-identifier "icmpv4-code-match-entry"; + leaf icmpv4-code { + type uint8; + } + } + augment "/oxm:oxm-container/oxm:match-entries" { + ext:augment-identifier "op-code-match-entry"; + leaf op-code { + type uint16; + } + } + augment "/oxm:oxm-container/oxm:match-entries" { + ext:augment-identifier "ipv6-flabel-match-entry"; + leaf ipv6-flabel { + type inet:ipv6-flow-label; + } + } + augment "/oxm:oxm-container/oxm:match-entries" { + ext:augment-identifier "icmpv6-type-match-entry"; + leaf icmpv6-type { + type uint8; + } + } + augment "/oxm:oxm-container/oxm:match-entries" { + ext:augment-identifier "icmpv6-code-match-entry"; + leaf icmpv6-code { + type uint8; + } } - augment "/oxm:oxm-container/oxm:match-entries" { - uses oxm:metadata; - /* common augment for fields: - OXM_OF_METADATA - OXM_OF_TUNNEL_ID - */ + ext:augment-identifier "ipv6-address-match-entry"; + leaf ipv6-address { + type inet:ipv6-address; + } + } + augment "/oxm:oxm-container/oxm:match-entries" { + ext:augment-identifier "ipv4-address-match-entry"; + leaf ipv4-address { + type inet:ipv4-address; + } + } + augment "/oxm:oxm-container/oxm:match-entries" { + ext:augment-identifier "mpls-label-match-entry"; + leaf mpls-label { + type uint32; + } + } + augment "/oxm:oxm-container/oxm:match-entries" { + ext:augment-identifier "tc-match-entry"; + leaf tc { + type uint8; + } + } + augment "/oxm:oxm-container/oxm:match-entries" { + ext:augment-identifier "bos-match-entry"; + leaf bos { + type boolean; + } + } + augment "/oxm:oxm-container/oxm:match-entries" { + ext:augment-identifier "isid-match-entry"; + leaf isid { + type uint32; + } + } + augment "/oxm:oxm-container/oxm:match-entries" { + ext:augment-identifier "pseudo-field-match-entry"; + leaf pseudo-field { + type bits { + bit nonext { + description " encountered."; + position 0; + } + bit esp { + description "Encrypted Sec Payload header present."; + position 1; + } + bit auth { + description "Authentication header present."; + position 2; + } + bit dest { + description "1 or 2 dest headers present."; + position 3; + } + bit frag { + description "Fragment header present."; + position 4; + } + bit router { + description "Router header present."; + position 5; + } + bit hop { + description "Hop-by-hop header present."; + position 6; + } + bit unrep { + description "Unexpected repeats encountered."; + position 7; + } + bit unseq { + description "Unexpected sequencing encountered."; + position 8; + } + } + } } +// OFP_ACTION AUGMENTS + augment "/ofaction:actions-container/ofaction:action" { + ext:augment-identifier "port-action"; + leaf port { + type oft:port-number; + } + } + augment "/ofaction:actions-container/ofaction:action" { + ext:augment-identifier "max-length-action"; + leaf max-length { + type uint16; + } + } + augment "/ofaction:actions-container/ofaction:action" { + ext:augment-identifier "mpls-ttl-action"; + leaf mpls-ttl { + type uint8; + } + } + augment "/ofaction:actions-container/ofaction:action" { + ext:augment-identifier "ethertype-action"; + leaf ethertype { + type oft:ether-type; + } + } + augment "/ofaction:actions-container/ofaction:action" { + ext:augment-identifier "queue-id-action"; + leaf queue-id { + type uint32; + } + } + augment "/ofaction:actions-container/ofaction:action" { + ext:augment-identifier "group-id-action"; + leaf group-id { + type uint32; + } + } + augment "/ofaction:actions-container/ofaction:action" { + ext:augment-identifier "nw-ttl-action"; + leaf nw-ttl { + type uint8; + } + } + augment "/ofaction:actions-container/ofaction:action" { + ext:augment-identifier "oxm-fields-action"; + uses oxm:oxm-fields; + } + augment "/ofaction:actions-container/ofaction:action" { + ext:augment-identifier "experimenter-action"; + leaf experimenter { + type uint32; + } + } + +// OFP_TABLE_FEATURES_PROPERTIES AUGMENTS + augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" { + ext:augment-identifier "instruction-ids-table-feature-properties"; + list instruction-ids { + uses ofinstruction:instructions; + } + } + augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" { + ext:augment-identifier "next-table-ids-table-feature-properties"; + list next-table-ids { + leaf table-id { + type uint8; + } + } + } + augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" { + ext:augment-identifier "action-ids-table-feature-properties"; + list action-ids { + uses ofaction:action-header; + } + } + augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" { + ext:augment-identifier "oxm-ids-table-feature-properties"; + list oxm-ids { + uses oxm:oxm-fields; + } + } + augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" { + ext:augment-identifier "experimenter-table-feature-properties"; + leaf experimenter { + type uint32; + } + leaf exp-type { + type uint32; + } + leaf data { + type binary; + } + } + +// OFP_INSTRUCTION AUGMENTS + augment "/ofinstruction:instruction-container/ofinstruction:instruction" { + ext:augment-identifier "table-id-instruction"; + leaf table-id { + type uint8; + } + } + augment "/ofinstruction:instruction-container/ofinstruction:instruction" { + ext:augment-identifier "metadata-instruction"; + leaf metadata { + type binary; + } + leaf metadata-mask { + type binary; + } + } + augment "/ofinstruction:instruction-container/ofinstruction:instruction" { + ext:augment-identifier "action-header-instruction"; + list actions { + uses ofaction:action-header; + } + } + augment "/ofinstruction:instruction-container/ofinstruction:instruction" { + ext:augment-identifier "meter-id-instruction"; + leaf meter-id { + type uint32; + } + } + augment "/ofinstruction:instruction-container/ofinstruction:instruction" { + ext:augment-identifier "experimenter-instruction"; + leaf experimenter { + type uint32; + } + } } \ No newline at end of file