From c478b5dffd54fc748945a4d98a22fe1b2143daf9 Mon Sep 17 00:00:00 2001 From: Michal Polkorab Date: Mon, 3 Feb 2014 16:19:40 -0800 Subject: [PATCH] Bug 752 - removed model ambiguities - added "-grouping" to groupings to distinguish structures - moved match-grouping into openflow-extensible-match.yang - fixed actions structure (list action-list) - updated identities bases with "-base" MERGE AFTER: https://git.opendaylight.org/gerrit/#/c/5109 Signed-off-by: Michal Polkorab Change-Id: Ie2bf3d446f8f5912796bd751e512189d6bf06018 (cherry picked from commit a4af04c204a636b6c0782cc2248068e0860a69ad) --- .../src/main/yang/openflow-action.yang | 72 ++++---- .../src/main/yang/openflow-augments.yang | 48 +++--- .../main/yang/openflow-extensible-match.yang | 18 +- .../src/main/yang/openflow-instruction.yang | 22 +-- .../src/main/yang/openflow-protocol.yang | 64 +++---- .../src/main/yang/openflow-types.yang | 4 +- .../MultipartReplyMessageFactory.java | 22 +-- .../OF10StatsReplyMessageFactory.java | 2 +- .../factories/FlowModInputMessageFactory.java | 4 +- .../GroupModInputMessageFactory.java | 10 +- .../MultipartRequestInputFactory.java | 26 +-- .../OF10FlowModInputMessageFactory.java | 4 +- .../OF10PacketOutInputMessageFactory.java | 6 +- .../PacketOutInputMessageFactory.java | 6 +- .../impl/util/ActionsDeserializer.java | 159 ++++++++---------- .../protocol/impl/util/ActionsSerializer.java | 20 +-- .../impl/util/InstructionsDeserializer.java | 28 +-- .../impl/util/InstructionsSerializer.java | 32 ++-- .../protocol/impl/util/MatchDeserializer.java | 8 +- .../impl/util/MatchIdsDeserializer.java | 4 +- .../impl/util/MatchIdsSerializer.java | 2 +- .../protocol/impl/util/MatchSerializer.java | 4 +- .../impl/util/OF10ActionsDeserializer.java | 129 ++++++-------- .../impl/util/OF10ActionsSerializer.java | 21 +-- .../MultipartReplyMessageFactoryTest.java | 116 ++++++------- .../OF10StatsReplyMessageFactoryTest.java | 6 +- .../FlowModInputMessageFactoryTest.java | 18 +- .../GroupModInputMessageFactoryTest.java | 4 +- .../OF10FlowModInputMessageFactoryTest.java | 16 +- .../OF10PacketOutInputMessageFactoryTest.java | 19 +-- .../PacketOutInputMessageFactoryTest.java | 16 +- .../multipart/TableFeaturesTest.java | 32 ++-- .../impl/util/ActionsDeserializerTest.java | 60 +++---- .../impl/util/ActionsSerializerTest.java | 79 +++------ .../util/InstructionsDeserializerTest.java | 32 ++-- .../impl/util/InstructionsSerializerTest.java | 72 ++++---- .../impl/util/MatchDeserializerTest.java | 4 +- .../impl/util/MatchSerializerTest.java | 8 +- .../impl/util/MatchSerializerTest2.java | 8 +- .../util/OF10ActionsDeserializerTest.java | 31 ++-- .../impl/util/OF10ActionsSerializerTest.java | 59 ++----- 41 files changed, 574 insertions(+), 721 deletions(-) diff --git a/openflow-protocol-api/src/main/yang/openflow-action.yang b/openflow-protocol-api/src/main/yang/openflow-action.yang index 3f1168bd..950d8b0c 100644 --- a/openflow-protocol-api/src/main/yang/openflow-action.yang +++ b/openflow-protocol-api/src/main/yang/openflow-action.yang @@ -18,85 +18,83 @@ identity output { description " Output to switch port. (both OF v1.0 and v1.3)"; - base oft:action; + base oft:action-base; } identity copy_ttl_out { description " Copy TTL \"outwards\" -- from next-to-outermost to outermost "; - base oft:action; + base oft:action-base; } identity copy_ttl_in { description " Copy TTL \"inwards\" -- from outermost to next-to-outermost "; - base oft:action; + base oft:action-base; } identity set_mpls_ttl { description " MPLS TTL "; - base oft:action; + base oft:action-base; } identity dec_mpls_ttl { description " Decrement MPLS TTL "; - base oft:action; + base oft:action-base; } identity push_vlan { description " Push a new VLAN tag "; - base oft:action; + base oft:action-base; } identity pop_vlan { description " Pop the outer VLAN tag "; - base oft:action; + base oft:action-base; } identity push_mpls { description " Push a new MPLS tag "; - base oft:action; + base oft:action-base; } identity pop_mpls { description " Pop the outer MPLS tag "; - base oft:action; + base oft:action-base; } identity set_queue { description " Set queue id when outputting to a port "; - base oft:action; + base oft:action-base; } identity group { description " Apply group. "; - base oft:action; + base oft:action-base; } identity set_nw_ttl { description " IP TTL. "; - base oft:action; + base oft:action-base; } identity dec_nw_ttl { description " Decrement IP TTL. "; - base oft:action; + base oft:action-base; } identity set_field { description " Set a header field using OXM TLV format. "; - base oft:action; + base oft:action-base; } identity push_pbb { description " Push a new PBB service tag (I-TAG) "; - base oft:action; + base oft:action-base; } identity pop_pbb { description " Pop the outer PBB service tag (I-TAG) "; - base oft:action; + base oft:action-base; } identity experimenter { description ""; - base oft:action; + base oft:action-base; } container actions-container { - uses actions; + uses actions-grouping; } - grouping actions { - list actions-list { - key "action"; - container action { - leaf type { - type identityref { - base oft:action; - } + grouping actions-grouping { + list action { + key "type"; + leaf type { + type identityref { + base oft:action-base; } } } @@ -105,47 +103,47 @@ // OF1.0 structures identity set_vlan_vid { description "Set the 802.1q VLAN id (OF v1.0)."; - base oft:action; + base oft:action-base; } identity set_vlan_pcp { description "Set the 802.1q priority (OF v1.0)."; - base oft:action; + base oft:action-base; } identity strip_vlan { description "Strip the 802.1q header (OF v1.0)."; - base oft:action; + base oft:action-base; } identity set_dl_src { description "Ethernet source address (OF v1.0)."; - base oft:action; + base oft:action-base; } identity set_dl_dst { description "Ethernet destination address (OF v1.0)."; - base oft:action; + base oft:action-base; } identity set_nw_src { description "IP source address (OF v1.0)."; - base oft:action; + base oft:action-base; } identity set_nw_dst { description "IP destination address (OF v1.0)."; - base oft:action; + base oft:action-base; } identity set_nw_tos { description "IP ToS (DSCP field, 6 bits) (OF v1.0)."; - base oft:action; + base oft:action-base; } identity set_tp_src { description "TCP/UDP source port (OF v1.0)."; - base oft:action; + base oft:action-base; } identity set_tp_dst { description "TCP/UDP destination port (OF v1.0)."; - base oft:action; + base oft:action-base; } identity enqueue { description "Output to queue (OF v1.0)."; - base oft:action; + base oft:action-base; } } \ No newline at end of file diff --git a/openflow-protocol-api/src/main/yang/openflow-augments.yang b/openflow-protocol-api/src/main/yang/openflow-augments.yang index a0ac66a5..7fa157f4 100644 --- a/openflow-protocol-api/src/main/yang/openflow-augments.yang +++ b/openflow-protocol-api/src/main/yang/openflow-augments.yang @@ -177,84 +177,84 @@ } // OFP_ACTION AUGMENTS - augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" { + augment "/ofaction:actions-container/ofaction:action" { ext:augment-identifier "port-action"; leaf port { type oft:port-number; } } - augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" { + augment "/ofaction:actions-container/ofaction:action" { ext:augment-identifier "max-length-action"; leaf max-length { type uint16; } } - augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" { + augment "/ofaction:actions-container/ofaction:action" { ext:augment-identifier "mpls-ttl-action"; leaf mpls-ttl { type uint8; } } - augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" { + augment "/ofaction:actions-container/ofaction:action" { ext:augment-identifier "ethertype-action"; leaf ethertype { type oft:ether-type; } } - augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" { + augment "/ofaction:actions-container/ofaction:action" { ext:augment-identifier "queue-id-action"; leaf queue-id { type uint32; } } - augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" { + augment "/ofaction:actions-container/ofaction:action" { ext:augment-identifier "group-id-action"; leaf group-id { type uint32; } } - augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" { + augment "/ofaction:actions-container/ofaction:action" { ext:augment-identifier "nw-ttl-action"; leaf nw-ttl { type uint8; } } - augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" { + augment "/ofaction:actions-container/ofaction:action" { ext:augment-identifier "oxm-fields-action"; - uses oxm:oxm-fields; + uses oxm:oxm-fields-grouping; } - augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" { + augment "/ofaction:actions-container/ofaction:action" { ext:augment-identifier "experimenter-action"; leaf experimenter { type uint32; } } // OF1.0 structures - augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" { + augment "/ofaction:actions-container/ofaction:action" { ext:augment-identifier "vlan-vid-action"; leaf vlan-vid { type uint16; } } - augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" { + augment "/ofaction:actions-container/ofaction:action" { ext:augment-identifier "vlan-pcp-action"; leaf vlan-pcp { type uint8; } } - augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" { + augment "/ofaction:actions-container/ofaction:action" { ext:augment-identifier "dl-address-action"; leaf dl-address { type yang:mac-address; } } - augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" { + augment "/ofaction:actions-container/ofaction:action" { ext:augment-identifier "nw-tos-action"; leaf nw-tos { type uint8; } } - augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" { + augment "/ofaction:actions-container/ofaction:action" { ext:augment-identifier "ip-address-action"; leaf ip-address { type inet:ipv4-address; @@ -264,7 +264,7 @@ // OFP_TABLE_FEATURES_PROPERTIES AUGMENTS augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" { ext:augment-identifier "instruction-related-table-feature-property"; - uses ofinstruction:instructions; + uses ofinstruction:instructions-grouping; } augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" { ext:augment-identifier "next-table-related-table-feature-property"; @@ -277,11 +277,11 @@ } augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" { ext:augment-identifier "action-related-table-feature-property"; - uses ofaction:actions; + uses ofaction:actions-grouping; } augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" { ext:augment-identifier "oxm-related-table-feature-property"; - uses oxm:oxm-fields; + uses oxm:oxm-fields-grouping; } augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" { ext:augment-identifier "experimenter-related-table-feature-property"; @@ -297,13 +297,13 @@ } // OFP_INSTRUCTION AUGMENTS - augment "/ofinstruction:instruction-container/ofinstruction:instructions" { + augment "/ofinstruction:instruction-container/ofinstruction:instruction" { ext:augment-identifier "table-id-instruction"; leaf table-id { type uint8; } } - augment "/ofinstruction:instruction-container/ofinstruction:instructions" { + augment "/ofinstruction:instruction-container/ofinstruction:instruction" { ext:augment-identifier "metadata-instruction"; leaf metadata { type binary; @@ -312,17 +312,17 @@ type binary; } } - augment "/ofinstruction:instruction-container/ofinstruction:instructions" { + augment "/ofinstruction:instruction-container/ofinstruction:instruction" { ext:augment-identifier "actions-instruction"; - uses ofaction:actions; + uses ofaction:actions-grouping; } - augment "/ofinstruction:instruction-container/ofinstruction:instructions" { + augment "/ofinstruction:instruction-container/ofinstruction:instruction" { ext:augment-identifier "meter-id-instruction"; leaf meter-id { type uint32; } } - augment "/ofinstruction:instruction-container/ofinstruction:instructions" { + augment "/ofinstruction:instruction-container/ofinstruction:instruction" { ext:augment-identifier "experimenter-instruction"; leaf experimenter { type uint32; diff --git a/openflow-protocol-api/src/main/yang/openflow-extensible-match.yang b/openflow-protocol-api/src/main/yang/openflow-extensible-match.yang index 7caf73f0..52da6720 100644 --- a/openflow-protocol-api/src/main/yang/openflow-extensible-match.yang +++ b/openflow-protocol-api/src/main/yang/openflow-extensible-match.yang @@ -216,10 +216,10 @@ } container oxm-container { - uses oxm-fields; + uses oxm-fields-grouping; } - grouping oxm-fields { + grouping oxm-fields-grouping { list match-entries { description "OXM TLV-structures (Type Length Value)"; key "oxm-class oxm-match-field has-mask"; @@ -238,7 +238,19 @@ } } } - + + grouping match-grouping { + container match { + description "Match structure (OF v1.3)"; + leaf type { + type identityref { + base oft:match-type-base; + } + } + uses oxm-fields-grouping; + } + } + // OF1.0 structures grouping match-v10-grouping { container match-v10 { diff --git a/openflow-protocol-api/src/main/yang/openflow-instruction.yang b/openflow-protocol-api/src/main/yang/openflow-instruction.yang index 6e7c8a29..91aedd00 100644 --- a/openflow-protocol-api/src/main/yang/openflow-instruction.yang +++ b/openflow-protocol-api/src/main/yang/openflow-instruction.yang @@ -18,43 +18,43 @@ identity goto_table { description " Setup the next table in the lookup pipeline"; - base oft:instruction; + base oft:instruction-base; } identity write_metadata { description " Setup the metadata field for use later in pipeline"; - base oft:instruction; + base oft:instruction-base; } identity write_actions { description " Write the action(s) onto the datapath action set"; - base oft:instruction; + base oft:instruction-base; } identity apply_actions { description " Applies the action(s) immediately"; - base oft:instruction; + base oft:instruction-base; } identity clear_actions { description " Clears all actions from the datapath action set"; - base oft:instruction; + base oft:instruction-base; } identity meter { description " Apply meter (rate limiter)"; - base oft:instruction; + base oft:instruction-base; } identity experimenter { description "Experimenter instruction"; - base oft:instruction; + base oft:instruction-base; } container instruction-container { - uses instructions; + uses instructions-grouping; } - grouping instructions { - list instructions { + grouping instructions-grouping { + list instruction { key "type"; leaf type { type identityref { - base oft:instruction; + base oft:instruction-base; } } } diff --git a/openflow-protocol-api/src/main/yang/openflow-protocol.yang b/openflow-protocol-api/src/main/yang/openflow-protocol.yang index d95b1e07..63b21d64 100644 --- a/openflow-protocol-api/src/main/yang/openflow-protocol.yang +++ b/openflow-protocol-api/src/main/yang/openflow-protocol.yang @@ -22,7 +22,7 @@ } // Generic Structures - grouping port { + grouping port-grouping { reference "ofp_port"; leaf port-no { type uint32; @@ -93,25 +93,13 @@ } } - grouping match-grouping { - container match { - description "Match structure (OF v1.3)"; - leaf type { - type identityref { - base oft:match-type-base; - } - } - uses oxm:oxm-fields; - } - } - - grouping buckets { + grouping buckets-grouping { list buckets-list { - uses bucket; + uses bucket-grouping; } } - grouping bucket { + grouping bucket-grouping { description "Bucket for use in groups."; leaf weight { description "Relative weight of bucket. Only @@ -131,14 +119,14 @@ type uint32; } - uses ofaction:actions; + uses ofaction:actions-grouping; } container table-features-properties-container { - uses table-features-properties; + uses table-features-properties-grouping; } - grouping table-features-properties { + grouping table-features-properties-grouping { list table-feature-properties { key "type"; leaf type { @@ -271,7 +259,7 @@ type oft:action-type-v10; } list phy-port { - uses port; + uses port-grouping; } } grouping get-config-request { @@ -331,7 +319,7 @@ // Cookie of the flow entry that was looked up. type uint64; } - uses match-grouping; + uses oxm:match-grouping; leaf data { type binary; @@ -377,7 +365,7 @@ leaf byte-count { type uint64; } - uses match-grouping; + uses oxm:match-grouping; // OF1.0 structures uses oxm:match-v10-grouping; @@ -387,7 +375,7 @@ uses ofHeader; - uses port; + uses port-grouping; leaf reason { type oft:port-reason; @@ -400,7 +388,7 @@ uses ofHeader; - uses ofaction:actions; + uses ofaction:actions-grouping; leaf data { type binary; @@ -451,16 +439,16 @@ leaf flags { type oft:flow-mod-flags; } - uses match-grouping; + uses oxm:match-grouping; - uses ofinstruction:instructions; + uses ofinstruction:instructions-grouping; // OF1.0 structures leaf flags-v10 { type oft:flow-mod-flags-v10; } uses oxm:match-v10-grouping; - uses ofaction:actions; + uses ofaction:actions-grouping; } grouping group-mod { reference "OFPT_GROUP_MOD message in Openflow Switch 1.3 Spec"; @@ -478,7 +466,7 @@ type oft:group-id; } - uses buckets; + uses buckets-grouping; } grouping port-mod { @@ -565,7 +553,7 @@ leaf cookie-mask { type uint64; } - uses match-grouping; + uses oxm:match-grouping; // OF1.0 structures uses oxm:match-v10-grouping; @@ -588,7 +576,7 @@ leaf cookie-mask { type uint64; } - uses match-grouping; + uses oxm:match-grouping; // OF1.0 structures uses oxm:match-v10-grouping; @@ -681,7 +669,7 @@ leaf max-entries { type uint32; } - uses table-features-properties; + uses table-features-properties-grouping; } } } @@ -772,13 +760,13 @@ leaf byte-count { type uint64; } - uses match-grouping; + uses oxm:match-grouping; - uses ofinstruction:instructions; + uses ofinstruction:instructions-grouping; // OF1.0 structures uses oxm:match-v10-grouping; - uses ofaction:actions; + uses ofaction:actions-grouping; } } } @@ -949,7 +937,7 @@ leaf group-id { type oft:group-id; } - uses buckets; + uses buckets-grouping; } } } @@ -1056,14 +1044,14 @@ leaf max-entries { type uint32; } - uses table-features-properties; + uses table-features-properties-grouping; } } } case multipart-reply-port-desc-case { container multipart-reply-port-desc { list ports { - uses port; + uses port-grouping; } } } @@ -1169,7 +1157,7 @@ reference "OFPT_GET_ASYNC_REQUEST message in Openflow Switch 1.3 Spec"; /* Controller/switch message */ - uses ofHeader; + uses ofHeader; } grouping get-async-reply { reference "OFPT_GET_ASYNC_REPLY message in Openflow Switch 1.3 Spec"; diff --git a/openflow-protocol-api/src/main/yang/openflow-types.yang b/openflow-protocol-api/src/main/yang/openflow-types.yang index 48fd179c..669c86f0 100644 --- a/openflow-protocol-api/src/main/yang/openflow-types.yang +++ b/openflow-protocol-api/src/main/yang/openflow-types.yang @@ -198,11 +198,11 @@ base oft:match-type-base; } - identity instruction { + identity instruction-base { description "Base identity for instruction types"; } - identity action { + identity action-base { description "Base identity for action types"; } diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/MultipartReplyMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/MultipartReplyMessageFactory.java index f03563bd..3ef96147 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/MultipartReplyMessageFactory.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/MultipartReplyMessageFactory.java @@ -33,7 +33,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.OxmRelatedTableFeaturePropertyBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.table.features.properties.container.table.feature.properties.NextTableIds; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.table.features.properties.container.table.feature.properties.NextTableIdsBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsList; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.ActionType; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.FlowModFlags; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.GroupCapabilities; @@ -54,8 +54,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev13 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.TableFeaturesPropType; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessage; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessageBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.buckets.BucketsList; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.buckets.BucketsListBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.buckets.grouping.BucketsList; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.buckets.grouping.BucketsListBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.band.header.meter.band.MeterBandDropCaseBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.band.header.meter.band.MeterBandDscpRemarkCaseBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.band.header.meter.band.MeterBandExperimenterCaseBuilder; @@ -133,8 +133,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.table.features._case.MultipartReplyTableFeaturesBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.table.features._case.multipart.reply.table.features.TableFeatures; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.table.features._case.multipart.reply.table.features.TableFeaturesBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.TableFeatureProperties; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.TableFeaturePropertiesBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.grouping.TableFeatureProperties; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.grouping.TableFeaturePropertiesBuilder; /** * Translates MultipartReply messages @@ -293,7 +293,7 @@ public class MultipartReplyMessageFactory implements OFDeserializer actionsList = ActionsDeserializer - .createActionsList(input, bucketsLength - BUCKETS_HEADER_LENGTH); - bucketsBuilder.setActionsList(actionsList); + List actionsList = ActionsDeserializer + .createActions(input, bucketsLength - BUCKETS_HEADER_LENGTH); + bucketsBuilder.setAction(actionsList); bucketsList.add(bucketsBuilder.build()); actualLength += bucketsLength; } diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10StatsReplyMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10StatsReplyMessageFactory.java index 94361a92..a78d4643 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10StatsReplyMessageFactory.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10StatsReplyMessageFactory.java @@ -168,7 +168,7 @@ public class OF10StatsReplyMessageFactory implements OFDeserializer { out.writeShort(createFlowModFlagsBitmask(message.getFlags())); ByteBufUtils.padBuffer(PADDING_IN_FLOW_MOD_MESSAGE, out); MatchSerializer.encodeMatch(message.getMatch(), out); - InstructionsSerializer.encodeInstructions(message.getInstructions(), out); + InstructionsSerializer.encodeInstructions(message.getInstruction(), out); } @Override public int computeLength(FlowModInput message) { return MESSAGE_LENGTH + MatchSerializer.computeMatchLength(message.getMatch()) - + InstructionsSerializer.computeInstructionsLength(message.getInstructions()); + + InstructionsSerializer.computeInstructionsLength(message.getInstruction()); } @Override diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/GroupModInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/GroupModInputMessageFactory.java index a9a2c510..c92db988 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/GroupModInputMessageFactory.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/GroupModInputMessageFactory.java @@ -16,7 +16,7 @@ import org.opendaylight.openflowjava.protocol.impl.serialization.OFSerializer; import org.opendaylight.openflowjava.protocol.impl.util.ActionsSerializer; import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GroupModInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.buckets.BucketsList; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.buckets.grouping.BucketsList; /** * Translates GroupMod messages @@ -74,7 +74,7 @@ public class GroupModInputMessageFactory implements OFSerializer outBuffer.writeInt(currentBucket.getWatchPort().getValue().intValue()); outBuffer.writeInt(currentBucket.getWatchGroup().intValue()); ByteBufUtils.padBuffer(PADDING_IN_BUCKET, outBuffer); - ActionsSerializer.encodeActions(currentBucket.getActionsList(), outBuffer); + ActionsSerializer.encodeActions(currentBucket.getAction(), outBuffer); } } } @@ -82,7 +82,8 @@ public class GroupModInputMessageFactory implements OFSerializer private static int computeLengthOfBucket(BucketsList bucket) { int lengthOfBuckets = 0; if (bucket != null) { - lengthOfBuckets = LENGTH_OF_BUCKET_STRUCTURE + ActionsSerializer.computeLengthOfActions(bucket.getActionsList()); + lengthOfBuckets = LENGTH_OF_BUCKET_STRUCTURE + + ActionsSerializer.computeLengthOfActions(bucket.getAction()); } return lengthOfBuckets; } @@ -91,7 +92,8 @@ public class GroupModInputMessageFactory implements OFSerializer int lengthOfBuckets = 0; if (buckets != null) { for (BucketsList currentBucket : buckets) { - lengthOfBuckets += LENGTH_OF_BUCKET_STRUCTURE + ActionsSerializer.computeLengthOfActions(currentBucket.getActionsList()); + lengthOfBuckets += LENGTH_OF_BUCKET_STRUCTURE + + ActionsSerializer.computeLengthOfActions(currentBucket.getAction()); } } return lengthOfBuckets; diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/MultipartRequestInputFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/MultipartRequestInputFactory.java index ac4a3105..0fdeff1c 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/MultipartRequestInputFactory.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/MultipartRequestInputFactory.java @@ -26,14 +26,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.NextTableRelatedTableFeatureProperty; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.OxmRelatedTableFeatureProperty; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.table.features.properties.container.table.feature.properties.NextTableIds; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsList; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.Experimenter; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.Instructions; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartRequestFlags; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartType; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.TableConfig; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.TableFeaturesPropType; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntries; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntries; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.MultipartRequestBody; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestAggregateCase; @@ -61,7 +61,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.queue._case.MultipartRequestQueue; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.table.features._case.MultipartRequestTableFeatures; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.table.features._case.multipart.request.table.features.TableFeatures; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.TableFeatureProperties; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.grouping.TableFeatureProperties; /** * Translates MultipartRequest messages @@ -241,7 +241,7 @@ public class MultipartRequestInputFactory implements OFSerializer instructions = property. - getAugmentation(InstructionRelatedTableFeatureProperty.class).getInstructions(); + List instructions = property. + getAugmentation(InstructionRelatedTableFeatureProperty.class).getInstruction(); int length = TABLE_FEAT_HEADER_LENGTH; int padding = 0; if (instructions != null) { - for (Instructions instruction : instructions) { + for (Instruction instruction : instructions) { if (instruction.getType().isAssignableFrom(Experimenter.class)) { length += EncodeConstants.EXPERIMENTER_IDS_LENGTH; } else { @@ -531,13 +531,13 @@ public class MultipartRequestInputFactory implements OFSerializer actions = property. - getAugmentation(ActionRelatedTableFeatureProperty.class).getActionsList(); + List actions = property. + getAugmentation(ActionRelatedTableFeatureProperty.class).getAction(); int length = TABLE_FEAT_HEADER_LENGTH; int padding = 0; if (actions != null) { - for (ActionsList action : actions) { - if (action.getAction().getType().isAssignableFrom(Experimenter.class)) { + for (Action action : actions) { + if (action.getType().isAssignableFrom(Experimenter.class)) { length += EncodeConstants.EXPERIMENTER_IDS_LENGTH; } else { length += STRUCTURE_HEADER_LENGTH; diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10FlowModInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10FlowModInputMessageFactory.java index e4c1d583..7fe217a6 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10FlowModInputMessageFactory.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10FlowModInputMessageFactory.java @@ -57,12 +57,12 @@ public class OF10FlowModInputMessageFactory implements OFSerializer createActionsList(ByteBuf input, int actionsLength) { - ActionsListBuilder actionsListBuilder = new ActionsListBuilder(); - List actionsList = new ArrayList<>(); + public static List createActions(ByteBuf input, int actionsLength) { + List actions = new ArrayList<>(); int length = 0; while (length < actionsLength) { int type = input.readUnsignedShort(); int currentActionLength = input.readUnsignedShort(); + ActionBuilder actionBuilder = new ActionBuilder(); switch(type) { case 0: - actionsList.add(createOutputAction(input, actionsListBuilder)); + actions.add(createOutputAction(input, actionBuilder)); break; case 11: - actionsList.add(createCopyTtlOutAction(input, actionsListBuilder)); + actions.add(createCopyTtlOutAction(input, actionBuilder)); break; case 12: - actionsList.add(createCopyTtlInAction(input, actionsListBuilder)); + actions.add(createCopyTtlInAction(input, actionBuilder)); break; case 15: - actionsList.add(createSetMplsTtlAction(input, actionsListBuilder)); + actions.add(createSetMplsTtlAction(input, actionBuilder)); break; case 16: - actionsList.add(createDecMplsTtlOutAction(input, actionsListBuilder)); + actions.add(createDecMplsTtlOutAction(input, actionBuilder)); break; case 17: - actionsList.add(createPushVlanAction(input, actionsListBuilder)); + actions.add(createPushVlanAction(input, actionBuilder)); break; case 18: - actionsList.add(createPopVlanAction(input, actionsListBuilder)); + actions.add(createPopVlanAction(input, actionBuilder)); break; case 19: - actionsList.add(createPushMplsAction(input, actionsListBuilder)); + actions.add(createPushMplsAction(input, actionBuilder)); break; case 20: - actionsList.add(createPopMplsAction(input, actionsListBuilder)); + actions.add(createPopMplsAction(input, actionBuilder)); break; case 21: - actionsList.add(createSetQueueAction(input, actionsListBuilder)); + actions.add(createSetQueueAction(input, actionBuilder)); break; case 22: - actionsList.add(createGroupAction(input, actionsListBuilder)); + actions.add(createGroupAction(input, actionBuilder)); break; case 23: - actionsList.add(createSetNwTtlAction(input, actionsListBuilder)); + actions.add(createSetNwTtlAction(input, actionBuilder)); break; case 24: - actionsList.add(createDecNwTtlAction(input, actionsListBuilder)); + actions.add(createDecNwTtlAction(input, actionBuilder)); break; case 25: - actionsList.add(createSetFieldAction(input, actionsListBuilder, currentActionLength)); + actions.add(createSetFieldAction(input, actionBuilder, currentActionLength)); break; case 26: - actionsList.add(createPushPbbAction(input, actionsListBuilder)); + actions.add(createPushPbbAction(input, actionBuilder)); break; case 27: - actionsList.add(createPopPbbAction(input, actionsListBuilder)); + actions.add(createPopPbbAction(input, actionBuilder)); break; case 0xFFFF: - actionsList.add(createExperimenterAction(input, actionsListBuilder)); + actions.add(createExperimenterAction(input, actionBuilder)); break; default: break; } length += currentActionLength; } - return actionsList; + return actions; } /** @@ -147,16 +147,14 @@ public abstract class ActionsDeserializer { * @param actionsLength length of actions * @return ActionsList */ - public static List createActionIds(ByteBuf input, int actionsLength) { - List actionsList = new ArrayList<>(); + public static List createActionIds(ByteBuf input, int actionsLength) { + List actionsList = new ArrayList<>(); int length = 0; ActionBuilder builder; - ActionsListBuilder listBuilder; while (length < actionsLength) { + builder = new ActionBuilder(); int type = input.readUnsignedShort(); int currentActionLength = input.readUnsignedShort(); - builder = new ActionBuilder(); - listBuilder = new ActionsListBuilder(); switch(type) { case 0: builder.setType(Output.class); @@ -215,49 +213,44 @@ public abstract class ActionsDeserializer { default: break; } - listBuilder.setAction(builder.build()); - actionsList.add(listBuilder.build()); + actionsList.add(builder.build()); length += currentActionLength; } return actionsList; } - private static ActionsList createEmptyHeader(Class action, - ByteBuf in, ActionsListBuilder actionsListBuilder) { - ActionBuilder actionBuilder = new ActionBuilder(); + private static Action createEmptyHeader(Class action, + ByteBuf in, ActionBuilder actionBuilder) { actionBuilder.setType(action); in.skipBytes(PADDING_IN_ACTIONS_HEADER); - actionsListBuilder.setAction(actionBuilder.build()); - return actionsListBuilder.build(); + return actionBuilder.build(); } - private static ActionsList createCopyTtlInAction(ByteBuf in, ActionsListBuilder actionsListBuilder) { - return createEmptyHeader(CopyTtlIn.class, in, actionsListBuilder); + private static Action createCopyTtlInAction(ByteBuf in, ActionBuilder actionBuilder) { + return createEmptyHeader(CopyTtlIn.class, in, actionBuilder); } - private static ActionsList createCopyTtlOutAction(ByteBuf in, ActionsListBuilder actionsListBuilder) { - return createEmptyHeader(CopyTtlOut.class, in, actionsListBuilder); + private static Action createCopyTtlOutAction(ByteBuf in, ActionBuilder actionBuilder) { + return createEmptyHeader(CopyTtlOut.class, in, actionBuilder); } - private static ActionsList createDecMplsTtlOutAction(ByteBuf in, ActionsListBuilder actionsListBuilder) { - return createEmptyHeader(DecMplsTtl.class, in, actionsListBuilder); + private static Action createDecMplsTtlOutAction(ByteBuf in, ActionBuilder actionBuilder) { + return createEmptyHeader(DecMplsTtl.class, in, actionBuilder); } - private static ActionsList createPopVlanAction(ByteBuf in, ActionsListBuilder actionsListBuilder) { - return createEmptyHeader(PopVlan.class, in, actionsListBuilder); + private static Action createPopVlanAction(ByteBuf in, ActionBuilder actionBuilder) { + return createEmptyHeader(PopVlan.class, in, actionBuilder); } - private static ActionsList createDecNwTtlAction(ByteBuf in, ActionsListBuilder actionsListBuilder) { - return createEmptyHeader(DecNwTtl.class, in, actionsListBuilder); + private static Action createDecNwTtlAction(ByteBuf in, ActionBuilder actionBuilder) { + return createEmptyHeader(DecNwTtl.class, in, actionBuilder); } - private static ActionsList createPopPbbAction(ByteBuf in, ActionsListBuilder actionsListBuilder) { - return createEmptyHeader(PopPbb.class, in, actionsListBuilder); + private static Action createPopPbbAction(ByteBuf in, ActionBuilder actionBuilder) { + return createEmptyHeader(PopPbb.class, in, actionBuilder); } - private static ActionsList createOutputAction(ByteBuf in, ActionsListBuilder actionsListBuilder) { - ActionBuilder actionBuilder = new ActionBuilder(); + private static Action createOutputAction(ByteBuf in, ActionBuilder actionBuilder) { actionBuilder.setType(Output.class); PortActionBuilder port = new PortActionBuilder(); port.setPort(new PortNumber(in.readUnsignedInt())); @@ -265,99 +258,83 @@ public abstract class ActionsDeserializer { MaxLengthActionBuilder maxLen = new MaxLengthActionBuilder(); maxLen.setMaxLength(in.readUnsignedShort()); actionBuilder.addAugmentation(MaxLengthAction.class, maxLen.build()); - actionsListBuilder.setAction(actionBuilder.build()); in.skipBytes(PADDING_IN_OUTPUT_ACTIONS_HEADER); - return actionsListBuilder.build(); + return actionBuilder.build(); } - private static ActionsList createSetMplsTtlAction(ByteBuf in, ActionsListBuilder actionsListBuilder) { - ActionBuilder actionBuilder = new ActionBuilder(); + private static Action createSetMplsTtlAction(ByteBuf in, ActionBuilder actionBuilder) { actionBuilder.setType(SetMplsTtl.class); MplsTtlActionBuilder mplsTtl = new MplsTtlActionBuilder(); mplsTtl.setMplsTtl(in.readUnsignedByte()); actionBuilder.addAugmentation(MplsTtlAction.class, mplsTtl.build()); - actionsListBuilder.setAction(actionBuilder.build()); in.skipBytes(PADDING_IN_SET_MPLS_TTL_ACTIONS_HEADER); - return actionsListBuilder.build(); + return actionBuilder.build(); } - private static ActionsList createPushAction(Class action, - ByteBuf in, ActionsListBuilder actionsListBuilder) { - ActionBuilder actionBuilder = new ActionBuilder(); + private static Action createPushAction(Class action, + ByteBuf in, ActionBuilder actionBuilder) { actionBuilder.setType(action); EthertypeActionBuilder etherType = new EthertypeActionBuilder(); etherType.setEthertype(new EtherType(in.readUnsignedShort())); actionBuilder.addAugmentation(EthertypeAction.class, etherType.build()); - actionsListBuilder.setAction(actionBuilder.build()); in.skipBytes(PADDING_IN_PUSH_VLAN_ACTIONS_HEADER); - return actionsListBuilder.build(); + return actionBuilder.build(); } - private static ActionsList createPushVlanAction(ByteBuf in, ActionsListBuilder actionsListBuilder) { - return createPushAction(PushVlan.class, in, actionsListBuilder); + private static Action createPushVlanAction(ByteBuf in, ActionBuilder actionBuilder) { + return createPushAction(PushVlan.class, in, actionBuilder); } - private static ActionsList createPushMplsAction(ByteBuf in, ActionsListBuilder actionsListBuilder) { - return createPushAction(PushMpls.class, in, actionsListBuilder); + private static Action createPushMplsAction(ByteBuf in, ActionBuilder actionBuilder) { + return createPushAction(PushMpls.class, in, actionBuilder); } - private static ActionsList createPopMplsAction(ByteBuf in, ActionsListBuilder actionsListBuilder) { - return createPushAction(PopMpls.class, in, actionsListBuilder); + private static Action createPopMplsAction(ByteBuf in, ActionBuilder actionBuilder) { + return createPushAction(PopMpls.class, in, actionBuilder); } - private static ActionsList createPushPbbAction(ByteBuf in, ActionsListBuilder actionsListBuilder) { - return createPushAction(PushPbb.class, in, actionsListBuilder); + private static Action createPushPbbAction(ByteBuf in, ActionBuilder actionBuilder) { + return createPushAction(PushPbb.class, in, actionBuilder); } - private static ActionsList createSetQueueAction(ByteBuf in, ActionsListBuilder actionsListBuilder) { - ActionBuilder actionBuilder = new ActionBuilder(); + private static Action createSetQueueAction(ByteBuf in, ActionBuilder actionBuilder) { actionBuilder.setType(SetQueue.class); QueueIdActionBuilder queueId = new QueueIdActionBuilder(); queueId.setQueueId(in.readUnsignedInt()); actionBuilder.addAugmentation(QueueIdAction.class, queueId.build()); - actionsListBuilder.setAction(actionBuilder.build()); - return actionsListBuilder.build(); + return actionBuilder.build(); } - private static ActionsList createGroupAction(ByteBuf in, ActionsListBuilder actionsListBuilder) { - ActionBuilder actionBuilder = new ActionBuilder(); + private static Action createGroupAction(ByteBuf in, ActionBuilder actionBuilder) { actionBuilder.setType(Group.class); GroupIdActionBuilder group = new GroupIdActionBuilder(); group.setGroupId(in.readUnsignedInt()); actionBuilder.addAugmentation(GroupIdAction.class, group.build()); - actionsListBuilder.setAction(actionBuilder.build()); - return actionsListBuilder.build(); + return actionBuilder.build(); } - private static ActionsList createExperimenterAction(ByteBuf in, ActionsListBuilder actionsListBuilder) { - ActionBuilder actionBuilder = new ActionBuilder(); + private static Action createExperimenterAction(ByteBuf in, ActionBuilder actionBuilder) { actionBuilder.setType(Experimenter.class); ExperimenterActionBuilder experimenter = new ExperimenterActionBuilder(); experimenter.setExperimenter(in.readUnsignedInt()); actionBuilder.addAugmentation(ExperimenterAction.class, experimenter.build()); - actionsListBuilder.setAction(actionBuilder.build()); - return actionsListBuilder.build(); + return actionBuilder.build(); } - private static ActionsList createSetNwTtlAction(ByteBuf in, ActionsListBuilder actionsListBuilder) { - ActionBuilder actionBuilder = new ActionBuilder(); + private static Action createSetNwTtlAction(ByteBuf in, ActionBuilder actionBuilder) { actionBuilder.setType(SetNwTtl.class); NwTtlActionBuilder nwTtl = new NwTtlActionBuilder(); nwTtl.setNwTtl(in.readUnsignedByte()); actionBuilder.addAugmentation(NwTtlAction.class, nwTtl.build()); - actionsListBuilder.setAction(actionBuilder.build()); in.skipBytes(PADDING_IN_NW_TTL_ACTIONS_HEADER); - return actionsListBuilder.build(); + return actionBuilder.build(); } - private static ActionsList createSetFieldAction(ByteBuf in, ActionsListBuilder actionsListBuilder, int actionLength) { - ActionBuilder actionBuilder = new ActionBuilder(); + private static Action createSetFieldAction(ByteBuf in, ActionBuilder actionBuilder, int actionLength) { actionBuilder.setType(SetField.class); OxmFieldsActionBuilder matchEntries = new OxmFieldsActionBuilder(); matchEntries.setMatchEntries(MatchDeserializer.createMatchEntry(in, actionLength - ACTION_HEADER_LENGTH)); actionBuilder.addAugmentation(OxmFieldsAction.class, matchEntries.build()); - actionsListBuilder.setAction(actionBuilder.build()); - return actionsListBuilder.build(); + return actionBuilder.build(); } } diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/ActionsSerializer.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/ActionsSerializer.java index 51a3359f..6c26cc2c 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/ActionsSerializer.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/ActionsSerializer.java @@ -38,9 +38,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev1 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetMplsTtl; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetNwTtl; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetQueue; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsList; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.actions.list.Action; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntries; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntries; /** * Serializes ofp_actions (OpenFlow v1.3) @@ -89,12 +88,11 @@ public abstract class ActionsSerializer { * @param actionsList list of actions to be encoded * @param outBuffer output ByteBuf */ - public static void encodeActions(List actionsList, ByteBuf outBuffer) { + public static void encodeActions(List actionsList, ByteBuf outBuffer) { if (actionsList == null) { return; } - for (ActionsList list : actionsList) { - Action action = list.getAction(); + for (Action action : actionsList) { if (action.getType().isAssignableFrom(Output.class)) { encodeOutputAction(action, outBuffer); } else if (action.getType().isAssignableFrom(CopyTtlOut.class)) { @@ -138,12 +136,11 @@ public abstract class ActionsSerializer { * @param actionsList list of actions to be encoded * @param outBuffer output ByteBuf */ - public static void encodeActionIds(List actionsList, ByteBuf outBuffer) { + public static void encodeActionIds(List actionsList, ByteBuf outBuffer) { if (actionsList == null) { return; } - for (ActionsList list : actionsList) { - Action action = list.getAction(); + for (Action action : actionsList) { if (action.getType().isAssignableFrom(Output.class)) { writeTypeAndLength(outBuffer, OUTPUT_CODE, ACTION_IDS_LENGTH); } else if (action.getType().isAssignableFrom(CopyTtlOut.class)) { @@ -318,11 +315,10 @@ public abstract class ActionsSerializer { * @param actionsList list of actions * @return actions length */ - public static int computeLengthOfActions(List actionsList) { + public static int computeLengthOfActions(List actionsList) { int lengthOfActions = 0; if (actionsList != null) { - for (ActionsList list : actionsList) { - Action action = list.getAction(); + for (Action action : actionsList) { if (action.getType().isAssignableFrom(Output.class)) { lengthOfActions += OUTPUT_LENGTH; } else if (action.getType().isAssignableFrom(SetField.class)){ diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/InstructionsDeserializer.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/InstructionsDeserializer.java index d5adc97a..f678d87f 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/InstructionsDeserializer.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/InstructionsDeserializer.java @@ -8,6 +8,8 @@ package org.opendaylight.openflowjava.protocol.impl.util; +import io.netty.buffer.ByteBuf; + import java.util.ArrayList; import java.util.List; @@ -28,10 +30,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.Meter; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteActions; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteMetadata; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.Instructions; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.InstructionsBuilder; - -import io.netty.buffer.ByteBuf; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.InstructionBuilder; /** * Deserializes ofp_instruction (OpenFlow v1.3) structures @@ -52,12 +52,12 @@ public abstract class InstructionsDeserializer { * @param length * @return list of ofp_instruction */ - public static List createInstructions(ByteBuf input, int length) { - List instructions = new ArrayList<>(); + public static List createInstructions(ByteBuf input, int length) { + List instructions = new ArrayList<>(); if (input.readableBytes() != 0) { int lengthOfInstructions = length; while (lengthOfInstructions > 0) { - InstructionsBuilder builder = new InstructionsBuilder(); + InstructionBuilder builder = new InstructionBuilder(); int type = input.readUnsignedShort(); int instructionLength = input.readUnsignedShort(); lengthOfInstructions -= instructionLength; @@ -113,12 +113,12 @@ public abstract class InstructionsDeserializer { * @param length * @return list of ofp_instruction without values */ - public static List createInstructionIds(ByteBuf input, int length) { - List instructions = new ArrayList<>(); + public static List createInstructionIds(ByteBuf input, int length) { + List instructions = new ArrayList<>(); if (input.readableBytes() != 0) { int lengthOfInstructions = length; while (lengthOfInstructions > 0) { - InstructionsBuilder builder = new InstructionsBuilder(); + InstructionBuilder builder = new InstructionBuilder(); int type = input.readUnsignedShort(); int instructionLength = input.readUnsignedShort(); lengthOfInstructions -= instructionLength; @@ -156,7 +156,7 @@ public abstract class InstructionsDeserializer { return instructions; } - private static void createGotoTableInstruction(InstructionsBuilder builder, + private static void createGotoTableInstruction(InstructionBuilder builder, ByteBuf input) { builder.setType(GotoTable.class); TableIdInstructionBuilder tableBuilder = new TableIdInstructionBuilder(); @@ -165,7 +165,7 @@ public abstract class InstructionsDeserializer { input.skipBytes(GOTO_TABLE_PADDING); } - private static void createMetadataInstruction(InstructionsBuilder builder, + private static void createMetadataInstruction(InstructionBuilder builder, ByteBuf input) { input.skipBytes(WRITE_METADATA_PADDING); builder.setType(WriteMetadata.class); @@ -180,10 +180,10 @@ public abstract class InstructionsDeserializer { } private static void createActionRelatedInstruction(ByteBuf input, - InstructionsBuilder builder, int actionsLength) { + InstructionBuilder builder, int actionsLength) { input.skipBytes(ACTIONS_RELATED_INSTRUCTION_PADDING); ActionsInstructionBuilder actionsBuilder = new ActionsInstructionBuilder(); - actionsBuilder.setActionsList(ActionsDeserializer.createActionsList(input, actionsLength)); + actionsBuilder.setAction(ActionsDeserializer.createActions(input, actionsLength)); builder.addAugmentation(ActionsInstruction.class, actionsBuilder.build()); } diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/InstructionsSerializer.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/InstructionsSerializer.java index 80ce60d7..b652432c 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/InstructionsSerializer.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/InstructionsSerializer.java @@ -17,7 +17,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.MetadataInstruction; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.MeterIdInstruction; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.TableIdInstruction; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsList; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.ApplyActions; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.ClearActions; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.Experimenter; @@ -25,8 +25,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.Meter; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteActions; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteMetadata; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.Instructions; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.Instruction; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.InstructionBase; /** * Serializes ofp_instruction (OpenFlow v 1.3) structure @@ -58,10 +58,10 @@ public abstract class InstructionsSerializer { * @param instructions List of instructions * @param out output buffer */ - public static void encodeInstructions(List instructions, ByteBuf out) { + public static void encodeInstructions(List instructions, ByteBuf out) { if (instructions != null) { - for (Instructions instruction : instructions) { - Class type = instruction.getType(); + for (Instruction instruction : instructions) { + Class type = instruction.getType(); if (type.isAssignableFrom(GotoTable.class)) { writeTypeAndLength(out, GOTO_TABLE_TYPE, GOTO_TABLE_LENGTH); out.writeByte(instruction.getAugmentation(TableIdInstruction.class).getTableId()); @@ -99,10 +99,10 @@ public abstract class InstructionsSerializer { * @param instructions List of instruction identifiers (without values) * @param out output buffer */ - public static void encodeInstructionIds(List instructions, ByteBuf out) { + public static void encodeInstructionIds(List instructions, ByteBuf out) { if (instructions != null) { - for (Instructions instruction : instructions) { - Class type = instruction.getType(); + for (Instruction instruction : instructions) { + Class type = instruction.getType(); if (type.isAssignableFrom(GotoTable.class)) { writeTypeAndLength(out, GOTO_TABLE_TYPE, INSTRUCTION_IDS_LENGTH); } else if (type.isAssignableFrom(WriteMetadata.class)) { @@ -130,10 +130,10 @@ public abstract class InstructionsSerializer { } private static void writeActionsInstruction(ByteBuf out, - Instructions instruction, int type) { + Instruction instruction, int type) { out.writeShort(type); if (instruction.getAugmentation(ActionsInstruction.class) != null) { - List actions = instruction.getAugmentation(ActionsInstruction.class).getActionsList(); + List actions = instruction.getAugmentation(ActionsInstruction.class).getAction(); out.writeShort(ACTIONS_INSTRUCTION_LENGTH + ActionsSerializer.computeLengthOfActions(actions)); ByteBufUtils.padBuffer(PADDING_IN_ACTIONS_INSTRUCTION, out); ActionsSerializer.encodeActions(actions, out); @@ -148,11 +148,11 @@ public abstract class InstructionsSerializer { * @param instructions List of instructions * @return length of instructions (in bytes) */ - public static int computeInstructionsLength(List instructions) { + public static int computeInstructionsLength(List instructions) { int length = 0; if (instructions != null) { - for (Instructions instruction : instructions) { - Class type = instruction.getType(); + for (Instruction instruction : instructions) { + Class type = instruction.getType(); if (type.isAssignableFrom(GotoTable.class)) { length += GOTO_TABLE_LENGTH; } else if (type.isAssignableFrom(WriteMetadata.class)) { @@ -161,13 +161,13 @@ public abstract class InstructionsSerializer { length += ACTIONS_INSTRUCTION_LENGTH; if (instruction.getAugmentation(ActionsInstruction.class) != null) { length += ActionsSerializer.computeLengthOfActions( - instruction.getAugmentation(ActionsInstruction.class).getActionsList()); + instruction.getAugmentation(ActionsInstruction.class).getAction()); } } else if (type.isAssignableFrom(ApplyActions.class)) { length += ACTIONS_INSTRUCTION_LENGTH; if (instruction.getAugmentation(ActionsInstruction.class) != null) { length += ActionsSerializer.computeLengthOfActions( - instruction.getAugmentation(ActionsInstruction.class).getActionsList()); + instruction.getAugmentation(ActionsInstruction.class).getAction()); } } else if (type.isAssignableFrom(ClearActions.class)) { length += ACTIONS_INSTRUCTION_LENGTH; diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/MatchDeserializer.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/MatchDeserializer.java index 06d8d583..fe05bf92 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/MatchDeserializer.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/MatchDeserializer.java @@ -115,10 +115,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.UdpD import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.UdpSrc; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.VlanPcp; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.VlanVid; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntries; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntriesBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.match.grouping.Match; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.match.grouping.MatchBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.match.grouping.Match; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.match.grouping.MatchBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntries; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntriesBuilder; import com.google.common.base.Joiner; diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/MatchIdsDeserializer.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/MatchIdsDeserializer.java index 6961ed87..db1687be 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/MatchIdsDeserializer.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/MatchIdsDeserializer.java @@ -56,8 +56,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.UdpD import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.UdpSrc; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.VlanPcp; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.VlanVid; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntries; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntriesBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntries; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntriesBuilder; /** * Encodes match ids (oxm_ids) needed in Multipart-TableFeatures messages diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/MatchIdsSerializer.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/MatchIdsSerializer.java index 85d92adf..eea0844d 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/MatchIdsSerializer.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/MatchIdsSerializer.java @@ -50,7 +50,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.UdpD import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.UdpSrc; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.VlanPcp; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.VlanVid; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntries; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntries; /** * Encodes match ids (oxm_ids) needed in Multipart-TableFeatures messages diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/MatchSerializer.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/MatchSerializer.java index 430ef20c..8443ed48 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/MatchSerializer.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/MatchSerializer.java @@ -88,8 +88,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.UdpD import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.UdpSrc; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.VlanPcp; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.VlanVid; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntries; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.match.grouping.Match; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.match.grouping.Match; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntries; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/OF10ActionsDeserializer.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/OF10ActionsDeserializer.java index 84fff98d..64372b1e 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/OF10ActionsDeserializer.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/OF10ActionsDeserializer.java @@ -46,10 +46,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev1 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetVlanPcp; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetVlanVid; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.StripVlan; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsList; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsListBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.actions.list.Action; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.actions.list.ActionBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.ActionBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber; import org.opendaylight.yangtools.yang.binding.Augmentation; @@ -74,8 +72,8 @@ public abstract class OF10ActionsDeserializer { * @param input input ByteBuf * @return ActionsList list of actions */ - public static List createActionsList(ByteBuf input) { - List actions = new ArrayList<>(); + public static List createActionsList(ByteBuf input) { + List actions = new ArrayList<>(); while (input.readableBytes() > 0) { int type = input.readUnsignedShort(); input.skipBytes(EncodeConstants.SIZE_OF_SHORT_IN_BYTES); @@ -91,8 +89,8 @@ public abstract class OF10ActionsDeserializer { * @param actionsLength length of actions * @return ActionsList list of actions */ - public static List createActionsList(ByteBuf input, int actionsLength) { - List actions = new ArrayList<>(); + public static List createActionsList(ByteBuf input, int actionsLength) { + List actions = new ArrayList<>(); int currentLength = 0; while (currentLength < actionsLength) { int type = input.readUnsignedShort(); @@ -102,9 +100,9 @@ public abstract class OF10ActionsDeserializer { return actions; } - private static ActionsList decodeAction(ByteBuf input, int type) { - ActionsListBuilder actionsBuilder = new ActionsListBuilder(); - ActionsList actionsList = null; + private static Action decodeAction(ByteBuf input, int type) { + ActionBuilder actionsBuilder = new ActionBuilder(); + Action actionsList = null; switch(type) { case 0: actionsList = createOutputAction(input, actionsBuilder); @@ -156,60 +154,48 @@ public abstract class OF10ActionsDeserializer { * @param builder * @return ActionList */ - public static ActionsList createOutputAction(ByteBuf in, ActionsListBuilder builder) { - ActionBuilder actionBuilder = new ActionBuilder(); - actionBuilder.setType(Output.class); - createPortAugmentation(in, actionBuilder); + public static Action createOutputAction(ByteBuf in, ActionBuilder builder) { + builder.setType(Output.class); + createPortAugmentation(in, builder); MaxLengthActionBuilder maxLen = new MaxLengthActionBuilder(); maxLen.setMaxLength(in.readUnsignedShort()); - actionBuilder.addAugmentation(MaxLengthAction.class, maxLen.build()); - builder.setAction(actionBuilder.build()); + builder.addAugmentation(MaxLengthAction.class, maxLen.build()); return builder.build(); } - private static ActionsList createSetVlanVidAction(ByteBuf input, ActionsListBuilder builder) { - ActionBuilder actionBuilder = new ActionBuilder(); - actionBuilder.setType(SetVlanVid.class); + private static Action createSetVlanVidAction(ByteBuf input, ActionBuilder builder) { + builder.setType(SetVlanVid.class); VlanVidActionBuilder vlanBuilder = new VlanVidActionBuilder(); vlanBuilder.setVlanVid(input.readUnsignedShort()); input.skipBytes(PADDING_IN_SET_VLAN_VID_ACTION); - actionBuilder.addAugmentation(VlanVidAction.class, vlanBuilder.build()); - builder.setAction(actionBuilder.build()); + builder.addAugmentation(VlanVidAction.class, vlanBuilder.build()); return builder.build(); } - private static ActionsList createVlanPcpAction(ByteBuf input, ActionsListBuilder builder) { - ActionBuilder actionBuilder = new ActionBuilder(); - actionBuilder.setType(SetVlanPcp.class); + private static Action createVlanPcpAction(ByteBuf input, ActionBuilder builder) { + builder.setType(SetVlanPcp.class); VlanPcpActionBuilder vlanBuilder = new VlanPcpActionBuilder(); vlanBuilder.setVlanPcp(input.readUnsignedByte()); input.skipBytes(PADDING_IN_SET_VLAN_PCP_ACTION); - actionBuilder.addAugmentation(VlanPcpAction.class, vlanBuilder.build()); - builder.setAction(actionBuilder.build()); + builder.addAugmentation(VlanPcpAction.class, vlanBuilder.build()); return builder.build(); } - private static ActionsList createStripVlanAction(ByteBuf input, ActionsListBuilder builder) { - ActionBuilder actionBuilder = new ActionBuilder(); - actionBuilder.setType(StripVlan.class); + private static Action createStripVlanAction(ByteBuf input, ActionBuilder builder) { + builder.setType(StripVlan.class); input.skipBytes(PADDING_IN_STRIP_VLAN_ACTION); - builder.setAction(actionBuilder.build()); return builder.build(); } - private static ActionsList createSetDlSrcAction(ByteBuf input, ActionsListBuilder builder) { - ActionBuilder actionBuilder = new ActionBuilder(); - actionBuilder.setType(SetDlSrc.class); - actionBuilder.addAugmentation(DlAddressAction.class, createDlAugmentationAndPad(input)); - builder.setAction(actionBuilder.build()); + private static Action createSetDlSrcAction(ByteBuf input, ActionBuilder builder) { + builder.setType(SetDlSrc.class); + builder.addAugmentation(DlAddressAction.class, createDlAugmentationAndPad(input)); return builder.build(); } - private static ActionsList createSetDlDstAction(ByteBuf input, ActionsListBuilder builder) { - ActionBuilder actionBuilder = new ActionBuilder(); - actionBuilder.setType(SetDlDst.class); - actionBuilder.addAugmentation(DlAddressAction.class, createDlAugmentationAndPad(input)); - builder.setAction(actionBuilder.build()); + private static Action createSetDlDstAction(ByteBuf input, ActionBuilder builder) { + builder.setType(SetDlDst.class); + builder.addAugmentation(DlAddressAction.class, createDlAugmentationAndPad(input)); return builder.build(); } @@ -222,19 +208,15 @@ public abstract class OF10ActionsDeserializer { return dlBuilder.build(); } - private static ActionsList createSetNwSrcAction(ByteBuf input, ActionsListBuilder builder) { - ActionBuilder actionBuilder = new ActionBuilder(); - actionBuilder.setType(SetNwSrc.class); - actionBuilder.addAugmentation(IpAddressAction.class, createNwAddressAugmentationAndPad(input)); - builder.setAction(actionBuilder.build()); + private static Action createSetNwSrcAction(ByteBuf input, ActionBuilder builder) { + builder.setType(SetNwSrc.class); + builder.addAugmentation(IpAddressAction.class, createNwAddressAugmentationAndPad(input)); return builder.build(); } - private static ActionsList createSetNwDstAction(ByteBuf input, ActionsListBuilder builder) { - ActionBuilder actionBuilder = new ActionBuilder(); - actionBuilder.setType(SetNwDst.class); - actionBuilder.addAugmentation(IpAddressAction.class, createNwAddressAugmentationAndPad(input)); - builder.setAction(actionBuilder.build()); + private static Action createSetNwDstAction(ByteBuf input, ActionBuilder builder) { + builder.setType(SetNwDst.class); + builder.addAugmentation(IpAddressAction.class, createNwAddressAugmentationAndPad(input)); return builder.build(); } @@ -249,32 +231,26 @@ public abstract class OF10ActionsDeserializer { return ipBuilder.build(); } - private static ActionsList createSetNwTosAction(ByteBuf input, ActionsListBuilder builder) { - ActionBuilder actionBuilder = new ActionBuilder(); - actionBuilder.setType(SetNwTos.class); + private static Action createSetNwTosAction(ByteBuf input, ActionBuilder builder) { + builder.setType(SetNwTos.class); NwTosActionBuilder tosBuilder = new NwTosActionBuilder(); tosBuilder.setNwTos(input.readUnsignedByte()); - actionBuilder.addAugmentation(NwTosAction.class, tosBuilder.build()); + builder.addAugmentation(NwTosAction.class, tosBuilder.build()); input.skipBytes(PADDING_IN_NW_TOS_ACTION); - builder.setAction(actionBuilder.build()); return builder.build(); } - private static ActionsList createSetTpSrcAction(ByteBuf input, ActionsListBuilder builder) { - ActionBuilder actionBuilder = new ActionBuilder(); - actionBuilder.setType(SetTpSrc.class); - createPortAugmentation(input, actionBuilder); + private static Action createSetTpSrcAction(ByteBuf input, ActionBuilder builder) { + builder.setType(SetTpSrc.class); + createPortAugmentation(input, builder); input.skipBytes(PADDING_IN_TP_ACTION); - builder.setAction(actionBuilder.build()); return builder.build(); } - private static ActionsList createSetTpDstAction(ByteBuf input, ActionsListBuilder builder) { - ActionBuilder actionBuilder = new ActionBuilder(); - actionBuilder.setType(SetTpDst.class); - createPortAugmentation(input, actionBuilder); + private static Action createSetTpDstAction(ByteBuf input, ActionBuilder builder) { + builder.setType(SetTpDst.class); + createPortAugmentation(input, builder); input.skipBytes(PADDING_IN_TP_ACTION); - builder.setAction(actionBuilder.build()); return builder.build(); } @@ -284,27 +260,22 @@ public abstract class OF10ActionsDeserializer { actionBuilder.addAugmentation(PortAction.class, portBuilder.build()); } - private static ActionsList createEnqueueAction(ByteBuf input, ActionsListBuilder builder) { - ActionBuilder actionBuilder = new ActionBuilder(); - actionBuilder.setType(Enqueue.class); - createPortAugmentation(input, actionBuilder); + private static Action createEnqueueAction(ByteBuf input, ActionBuilder builder) { + builder.setType(Enqueue.class); + createPortAugmentation(input, builder); input.skipBytes(PADDING_IN_ENQUEUE_ACTION); QueueIdActionBuilder queueBuilder = new QueueIdActionBuilder(); queueBuilder.setQueueId(input.readUnsignedInt()); - actionBuilder.addAugmentation(QueueIdAction.class, queueBuilder.build()); - builder.setAction(actionBuilder.build()); + builder.addAugmentation(QueueIdAction.class, queueBuilder.build()); return builder.build(); } - private static ActionsList createExperimenterAction(ByteBuf input, ActionsListBuilder builder) { - ActionBuilder actionBuilder = new ActionBuilder(); - actionBuilder.setType(Experimenter.class); + private static Action createExperimenterAction(ByteBuf input, ActionBuilder builder) { + builder.setType(Experimenter.class); ExperimenterActionBuilder expBuilder = new ExperimenterActionBuilder(); expBuilder.setExperimenter(input.readUnsignedInt()); - actionBuilder.addAugmentation(ExperimenterAction.class, expBuilder.build()); - builder.setAction(actionBuilder.build()); + builder.addAugmentation(ExperimenterAction.class, expBuilder.build()); return builder.build(); } - - + } diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/OF10ActionsSerializer.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/OF10ActionsSerializer.java index 803ae38c..eaaa6de8 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/OF10ActionsSerializer.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/OF10ActionsSerializer.java @@ -34,8 +34,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev1 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetVlanPcp; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetVlanVid; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.StripVlan; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsList; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.actions.list.Action; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action; /** * Serializes ofp_action (OpenFlow v1.0) structures @@ -78,14 +77,13 @@ public abstract class OF10ActionsSerializer { /** * Encodes ofp_action (OpenFlow v1.0) structures * @param out output ByteBuf that actions will be written into - * @param actionsList actions to be encoded + * @param actions actions to be encoded */ - public static void encodeActionsV10(ByteBuf out, List actionsList) { - if (actionsList == null) { + public static void encodeActionsV10(ByteBuf out, List actions) { + if (actions == null) { return; } - for (ActionsList list : actionsList) { - Action action = list.getAction(); + for (Action action : actions) { if (action.getType().equals(Output.class)) { encodeOutputAction(action, out); } else if (action.getType().equals(SetVlanVid.class)) { @@ -197,14 +195,13 @@ public abstract class OF10ActionsSerializer { /** * Computes length of actions - * @param actionsList + * @param actions * @return length of actions (OpenFlow v1.0) */ - public static int computeActionsLength(List actionsList) { + public static int computeActionsLength(List actions) { int length = 0; - if (actionsList != null) { - for (ActionsList list : actionsList) { - Action action = list.getAction(); + if (actions != null) { + for (Action action : actions) { if (action.getType().equals(Output.class)) { length += 8; } else if (action.getType().equals(SetVlanVid.class)) { diff --git a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/MultipartReplyMessageFactoryTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/MultipartReplyMessageFactoryTest.java index b37d51b3..db08791a 100644 --- a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/MultipartReplyMessageFactoryTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/MultipartReplyMessageFactoryTest.java @@ -965,26 +965,26 @@ public class MultipartReplyMessageFactoryTest { message.getGroupDesc().get(0).getBucketsList().get(0).getWatchGroup().intValue()); Assert.assertEquals("Wrong outputType", Output.class, - message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(0). - getAction().getType()); + message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(0) + .getType()); Assert.assertEquals("Wrong outputPort", 4351, - message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(0). - getAction().getAugmentation(PortAction.class). + message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(0) + .getAugmentation(PortAction.class). getPort().getValue().intValue()); Assert.assertEquals("Wrong outputMaxLen", 65535, - message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(0). - getAction().getAugmentation(MaxLengthAction.class). + message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(0) + .getAugmentation(MaxLengthAction.class). getMaxLength().intValue()); Assert.assertEquals("Wrong copyTtlOutType", CopyTtlOut.class, - message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(1). - getAction().getType()); + message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(1) + .getType()); Assert.assertEquals("Wrong copyTtlInType", CopyTtlIn.class, - message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(2). - getAction().getType()); + message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(2) + .getType()); } /** @@ -1042,35 +1042,35 @@ public class MultipartReplyMessageFactoryTest { Assert.assertEquals("Wrong bucketWatchGroup", 4, message.getGroupDesc().get(0).getBucketsList().get(0).getWatchGroup().intValue()); Assert.assertEquals("Wrong setMplsTtlType", SetMplsTtl.class, - message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(0). - getAction().getType()); + message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(0) + .getType()); Assert.assertEquals("Wrong setMplsTtlMPLS_TTL", 9, - message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(0). - getAction().getAugmentation(MplsTtlAction.class). + message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(0) + .getAugmentation(MplsTtlAction.class). getMplsTtl().intValue()); Assert.assertEquals("Wrong decMplsTtlType", DecMplsTtl.class, - message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(1). - getAction().getType()); + message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(1) + .getType()); Assert.assertEquals("Wrong pushVlanType", PushVlan.class, - message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(2). - getAction().getType()); + message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(2) + .getType()); Assert.assertEquals("Wrong pushVlanEthertype", 32, - message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(2). - getAction().getAugmentation(EthertypeAction.class). + message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(2) + .getAugmentation(EthertypeAction.class). getEthertype().getValue().intValue()); Assert.assertEquals("Wrong pushMplsType", PushMpls.class, - message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(3). - getAction().getType()); + message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(3) + .getType()); Assert.assertEquals("Wrong pushMplsEthertype", 255, - message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(3). - getAction().getAugmentation(EthertypeAction.class). + message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(3). + getAugmentation(EthertypeAction.class). getEthertype().getValue().intValue()); Assert.assertEquals("Wrong pushPbbType", PushPbb.class, - message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(4). - getAction().getType()); + message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(4) + .getType()); Assert.assertEquals("Wrong pushPbbEthertype", 4095, - message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(4). - getAction().getAugmentation(EthertypeAction.class). + message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(4) + .getAugmentation(EthertypeAction.class). getEthertype().getValue().intValue()); } @@ -1127,35 +1127,35 @@ public class MultipartReplyMessageFactoryTest { Assert.assertEquals("Wrong bucketWatchGroup", 4, message.getGroupDesc().get(0).getBucketsList().get(0).getWatchGroup().intValue()); Assert.assertEquals("Wrong popVlanType", PopVlan.class, - message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(0). - getAction().getType()); + message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(0) + .getType()); Assert.assertEquals("Wrong popPbbType", PopPbb.class, - message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(1). - getAction().getType()); + message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(1) + .getType()); Assert.assertEquals("Wrong popMplsType", PopMpls.class, - message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(2). - getAction().getType()); + message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(2) + .getType()); Assert.assertEquals("Wrong popMplsEthertype", 207, - message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(2). - getAction().getAugmentation(EthertypeAction.class). + message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(2) + .getAugmentation(EthertypeAction.class). getEthertype().getValue().intValue()); Assert.assertEquals("Wrong setQueueType", SetQueue.class, - message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(3). - getAction().getType()); + message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(3) + .getType()); Assert.assertEquals("Wrong setQueueQueueId", 13565952, - message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(3). - getAction().getAugmentation(QueueIdAction.class). + message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(3) + .getAugmentation(QueueIdAction.class). getQueueId().intValue()); Assert.assertEquals("Wrong groupType", Group.class, - message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(4). - getAction().getType()); + message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(4) + .getType()); Assert.assertEquals("Wrong groupGroupId", 13565952, - message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(4). - getAction().getAugmentation(GroupIdAction.class). + message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(4) + .getAugmentation(GroupIdAction.class). getGroupId().intValue()); Assert.assertEquals("Wrong decNwTtlType", DecNwTtl.class, - message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(5). - getAction().getType()); + message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(5) + .getType()); } /** @@ -1207,28 +1207,28 @@ public class MultipartReplyMessageFactoryTest { message.getGroupDesc().get(0).getBucketsList().get(0).getWatchGroup().intValue()); Assert.assertEquals("Wrong nwTTlType", SetNwTtl.class, - message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(0). - getAction().getType()); + message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(0) + .getType()); Assert.assertEquals("Wrong nwTTlnwTTL", 14, - message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(0). - getAction().getAugmentation(NwTtlAction.class).getNwTtl().intValue()); + message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(0) + .getAugmentation(NwTtlAction.class).getNwTtl().intValue()); Assert.assertEquals("Wrong setFieldType", SetField.class, - message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(1). - getAction().getType()); + message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(1) + .getType()); Assert.assertEquals("Wrong setFieldOXMClass", OpenflowBasicClass.class, - message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(1). - getAction().getAugmentation(OxmFieldsAction.class).getMatchEntries().get(0).getOxmClass()); + message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(1) + .getAugmentation(OxmFieldsAction.class).getMatchEntries().get(0).getOxmClass()); Assert.assertEquals("Wrong setFieldOXMField", InPort.class, - message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(1). - getAction().getAugmentation(OxmFieldsAction.class).getMatchEntries().get(0).getOxmMatchField()); + message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(1) + .getAugmentation(OxmFieldsAction.class).getMatchEntries().get(0).getOxmMatchField()); Assert.assertEquals("Wrong setFieldOXMValue", 255, - message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(1). - getAction().getAugmentation(OxmFieldsAction.class).getMatchEntries().get(0). + message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(1) + .getAugmentation(OxmFieldsAction.class).getMatchEntries().get(0). getAugmentation(PortNumberMatchEntry.class).getPortNumber().getValue().intValue()); } } diff --git a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10StatsReplyMessageFactoryTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10StatsReplyMessageFactoryTest.java index d1f3de31..553ac79f 100644 --- a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10StatsReplyMessageFactoryTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/OF10StatsReplyMessageFactoryTest.java @@ -20,7 +20,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.VlanVidAction; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.Output; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetVlanVid; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.actions.list.Action; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.FlowWildcardsV10; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessage; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.MultipartReplyAggregateCase; @@ -131,13 +131,13 @@ public class OF10StatsReplyMessageFactoryTest { Assert.assertEquals("Wrong byteCount", new BigInteger(1, new byte[]{(byte) 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20}), message.getFlowStats().get(0).getByteCount()); - Action action1 = message.getFlowStats().get(0).getActionsList().get(0).getAction(); + Action action1 = message.getFlowStats().get(0).getAction().get(0); Assert.assertEquals("Wrong action type", Output.class, action1.getType()); Assert.assertEquals("Wrong action port", 1, action1.getAugmentation(PortAction.class) .getPort().getValue().intValue()); Assert.assertEquals("Wrong action port", 2, action1.getAugmentation(MaxLengthAction.class) .getMaxLength().intValue()); - Action action2 = message.getFlowStats().get(0).getActionsList().get(1).getAction(); + Action action2 = message.getFlowStats().get(0).getAction().get(1); Assert.assertEquals("Wrong action type", SetVlanVid.class, action2.getType()); Assert.assertEquals("Wrong action port", 3, action2.getAugmentation(VlanVidAction.class) .getVlanVid().intValue()); diff --git a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/FlowModInputMessageFactoryTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/FlowModInputMessageFactoryTest.java index 0785e108..7dbd6bf2 100644 --- a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/FlowModInputMessageFactoryTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/FlowModInputMessageFactoryTest.java @@ -31,8 +31,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.ApplyActions; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.GotoTable; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteMetadata; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.Instructions; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.InstructionsBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.InstructionBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.FlowModCommand; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.FlowModFlags; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber; @@ -42,11 +42,11 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.IpEc import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Nxm0Class; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.OpenflowBasicClass; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.OxmMatchType; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntries; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntriesBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.match.grouping.MatchBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntries; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntriesBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowModInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowModInputBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.match.grouping.MatchBuilder; /** * @author timotej.kubas @@ -96,8 +96,8 @@ public class FlowModInputMessageFactoryTest { entries.add(entriesBuilder.build()); matchBuilder.setMatchEntries(entries); builder.setMatch(matchBuilder.build()); - List instructions = new ArrayList<>(); - InstructionsBuilder insBuilder = new InstructionsBuilder(); + List instructions = new ArrayList<>(); + InstructionBuilder insBuilder = new InstructionBuilder(); insBuilder.setType(GotoTable.class); TableIdInstructionBuilder idBuilder = new TableIdInstructionBuilder(); idBuilder.setTableId((short) 43); @@ -109,11 +109,11 @@ public class FlowModInputMessageFactoryTest { metaBuilder.setMetadataMask(cookieMask); insBuilder.addAugmentation(MetadataInstruction.class, metaBuilder.build()); instructions.add(insBuilder.build()); - insBuilder = new InstructionsBuilder(); + insBuilder = new InstructionBuilder(); insBuilder.setType(ApplyActions.class); insBuilder.addAugmentation(MetadataInstruction.class, metaBuilder.build()); instructions.add(insBuilder.build()); - builder.setInstructions(instructions); + builder.setInstruction(instructions); FlowModInput message = builder.build(); ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer(); diff --git a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/GroupModInputMessageFactoryTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/GroupModInputMessageFactoryTest.java index 2e51815c..eceb0d66 100644 --- a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/GroupModInputMessageFactoryTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/GroupModInputMessageFactoryTest.java @@ -25,8 +25,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev13 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GroupModInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GroupModInputBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.buckets.BucketsList; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.buckets.BucketsListBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.buckets.grouping.BucketsList; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.buckets.grouping.BucketsListBuilder; /** * @author timotej.kubas diff --git a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10FlowModInputMessageFactoryTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10FlowModInputMessageFactoryTest.java index fadefe00..12b2a945 100644 --- a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10FlowModInputMessageFactoryTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10FlowModInputMessageFactoryTest.java @@ -28,9 +28,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.PortActionBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetNwDst; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetTpSrc; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsList; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsListBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.actions.list.ActionBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.ActionBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.FlowModCommand; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.FlowModFlagsV10; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.FlowWildcardsV10; @@ -79,23 +78,20 @@ public class OF10FlowModInputMessageFactoryTest { builder.setBufferId(2L); builder.setOutPort(new PortNumber(4422L)); builder.setFlagsV10(new FlowModFlagsV10(true, false, true)); - List actions = new ArrayList<>(); - ActionsListBuilder actionsListBuilder = new ActionsListBuilder(); + List actions = new ArrayList<>(); ActionBuilder actionBuilder = new ActionBuilder(); actionBuilder.setType(SetNwDst.class); IpAddressActionBuilder ipBuilder = new IpAddressActionBuilder(); ipBuilder.setIpAddress(new Ipv4Address("2.2.2.2")); actionBuilder.addAugmentation(IpAddressAction.class, ipBuilder.build()); - actionsListBuilder.setAction(actionBuilder.build()); - actions.add(actionsListBuilder.build()); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(SetTpSrc.class); PortActionBuilder portBuilder = new PortActionBuilder(); portBuilder.setPort(new PortNumber(42L)); actionBuilder.addAugmentation(PortAction.class, portBuilder.build()); - actionsListBuilder.setAction(actionBuilder.build()); - actions.add(actionsListBuilder.build()); - builder.setActionsList(actions); + actions.add(actionBuilder.build()); + builder.setAction(actions); FlowModInput message = builder.build(); ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer(); diff --git a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10PacketOutInputMessageFactoryTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10PacketOutInputMessageFactoryTest.java index 899b34d1..9176b31e 100644 --- a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10PacketOutInputMessageFactoryTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/OF10PacketOutInputMessageFactoryTest.java @@ -26,9 +26,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.PortActionBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.Output; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.StripVlan; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsList; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsListBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.actions.list.ActionBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.ActionBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketOutInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketOutInputBuilder; @@ -49,8 +48,7 @@ public class OF10PacketOutInputMessageFactoryTest { BufferHelper.setupHeader(builder, EncodeConstants.OF10_VERSION_ID); builder.setBufferId(256L); builder.setInPort(new PortNumber(257L)); - List actions = new ArrayList<>(); - ActionsListBuilder actionsListBuilder = new ActionsListBuilder(); + List actions = new ArrayList<>(); ActionBuilder actionBuilder = new ActionBuilder(); actionBuilder.setType(Output.class); PortActionBuilder portBuilder = new PortActionBuilder(); @@ -59,15 +57,12 @@ public class OF10PacketOutInputMessageFactoryTest { MaxLengthActionBuilder maxLen = new MaxLengthActionBuilder(); maxLen.setMaxLength(50); actionBuilder.addAugmentation(MaxLengthAction.class, maxLen.build()); - actionsListBuilder.setAction(actionBuilder.build()); - actions.add(actionsListBuilder.build()); - actionsListBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(StripVlan.class); - actionsListBuilder.setAction(actionBuilder.build()); - builder.setActionsList(actions); - actions.add(actionsListBuilder.build()); - builder.setActionsList(actions); + builder.setAction(actions); + actions.add(actionBuilder.build()); + builder.setAction(actions); builder.setData(ByteBufUtils.hexStringToBytes("00 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14")); PacketOutInput message = builder.build(); diff --git a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/PacketOutInputMessageFactoryTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/PacketOutInputMessageFactoryTest.java index d845336d..292bca15 100644 --- a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/PacketOutInputMessageFactoryTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/PacketOutInputMessageFactoryTest.java @@ -24,9 +24,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.EthertypeActionBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.PopVlan; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.PushVlan; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsList; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsListBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.actions.list.ActionBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.ActionBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.EtherType; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketOutInput; @@ -51,20 +50,17 @@ public class PacketOutInputMessageFactoryTest { BufferHelper.setupHeader(builder, EncodeConstants.OF13_VERSION_ID); builder.setBufferId(256L); builder.setInPort(new PortNumber(256L)); - List actions = new ArrayList<>(); - ActionsListBuilder actionsListBuilder = new ActionsListBuilder(); + List actions = new ArrayList<>(); ActionBuilder actionBuilder = new ActionBuilder(); actionBuilder.setType(PushVlan.class); EthertypeActionBuilder ethertypeBuilder = new EthertypeActionBuilder(); ethertypeBuilder.setEthertype(new EtherType(25)); actionBuilder.addAugmentation(EthertypeAction.class, ethertypeBuilder.build()); - actionsListBuilder.setAction(actionBuilder.build()); - actions.add(actionsListBuilder.build()); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(PopVlan.class); - actionsListBuilder.setAction(actionBuilder.build()); - actions.add(actionsListBuilder.build()); - builder.setActionsList(actions); + actions.add(actionBuilder.build()); + builder.setAction(actions); builder.setData(ByteBufUtils.hexStringToBytes("00 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14")); PacketOutInput message = builder.build(); diff --git a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/multipart/TableFeaturesTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/multipart/TableFeaturesTest.java index a8843e53..eb64df70 100644 --- a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/multipart/TableFeaturesTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/multipart/TableFeaturesTest.java @@ -36,8 +36,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.Meter; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteActions; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteMetadata; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.Instructions; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.InstructionsBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.InstructionBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartRequestFlags; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartType; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.TableConfig; @@ -49,16 +49,16 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.IpPr import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Nxm0Class; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Nxm1Class; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.OpenflowBasicClass; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntries; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntriesBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntries; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntriesBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestTableFeaturesCaseBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.table.features._case.MultipartRequestTableFeaturesBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.table.features._case.multipart.request.table.features.TableFeatures; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.table.features._case.multipart.request.table.features.TableFeaturesBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.TableFeatureProperties; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.TableFeaturePropertiesBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.grouping.TableFeatureProperties; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.grouping.TableFeaturePropertiesBuilder; /** * @author michal.polkorab @@ -111,36 +111,36 @@ public class TableFeaturesTest { propBuilder.setType(TableFeaturesPropType.OFPTFPTINSTRUCTIONS); InstructionRelatedTableFeaturePropertyBuilder insPropBuilder = new InstructionRelatedTableFeaturePropertyBuilder(); - List insIds = new ArrayList<>(); - InstructionsBuilder insBuilder = new InstructionsBuilder(); + List insIds = new ArrayList<>(); + InstructionBuilder insBuilder = new InstructionBuilder(); insBuilder.setType(WriteActions.class); insIds.add(insBuilder.build()); - insBuilder = new InstructionsBuilder(); + insBuilder = new InstructionBuilder(); insBuilder.setType(GotoTable.class); insIds.add(insBuilder.build()); - insPropBuilder.setInstructions(insIds); + insPropBuilder.setInstruction(insIds); propBuilder.addAugmentation(InstructionRelatedTableFeatureProperty.class, insPropBuilder.build()); properties.add(propBuilder.build()); propBuilder = new TableFeaturePropertiesBuilder(); propBuilder.setType(TableFeaturesPropType.OFPTFPTINSTRUCTIONSMISS); insPropBuilder = new InstructionRelatedTableFeaturePropertyBuilder(); insIds = new ArrayList<>(); - insBuilder = new InstructionsBuilder(); + insBuilder = new InstructionBuilder(); insBuilder.setType(WriteMetadata.class); insIds.add(insBuilder.build()); - insBuilder = new InstructionsBuilder(); + insBuilder = new InstructionBuilder(); insBuilder.setType(ApplyActions.class); insIds.add(insBuilder.build()); - insBuilder = new InstructionsBuilder(); + insBuilder = new InstructionBuilder(); insBuilder.setType(Meter.class); insIds.add(insBuilder.build()); - insBuilder = new InstructionsBuilder(); + insBuilder = new InstructionBuilder(); insBuilder.setType(ClearActions.class); insIds.add(insBuilder.build()); - insBuilder = new InstructionsBuilder(); + insBuilder = new InstructionBuilder(); insBuilder.setType(GotoTable.class); insIds.add(insBuilder.build()); - insPropBuilder.setInstructions(insIds); + insPropBuilder.setInstruction(insIds); propBuilder.addAugmentation(InstructionRelatedTableFeatureProperty.class, insPropBuilder.build()); properties.add(propBuilder.build()); tableFeaturesBuilder.setTableFeatureProperties(properties); diff --git a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/ActionsDeserializerTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/ActionsDeserializerTest.java index 0b133f5c..d7f79c8c 100644 --- a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/ActionsDeserializerTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/ActionsDeserializerTest.java @@ -22,8 +22,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.PortAction; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.PortNumberMatchEntry; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.QueueIdAction; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsList; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntries; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntries; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -59,54 +59,54 @@ public class ActionsDeserializerTest { message.skipBytes(4); // skip XID LOGGER.info("bytes: " + message.readableBytes()); - List actions = ActionsDeserializer.createActionsList(message, message.readableBytes()); + List actions = ActionsDeserializer.createActions(message, message.readableBytes()); Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight." - + "openflow.common.action.rev130731.Output", actions.get(0).getAction().getType().getName()); + + "openflow.common.action.rev130731.Output", actions.get(0).getType().getName()); Assert.assertEquals("Wrong action port", 1, - actions.get(0).getAction().getAugmentation(PortAction.class).getPort().getValue().intValue()); + actions.get(0).getAugmentation(PortAction.class).getPort().getValue().intValue()); Assert.assertEquals("Wrong action max-length", 2, - actions.get(0).getAction().getAugmentation(MaxLengthAction.class).getMaxLength().intValue()); + actions.get(0).getAugmentation(MaxLengthAction.class).getMaxLength().intValue()); Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight." - + "openflow.common.action.rev130731.CopyTtlOut", actions.get(1).getAction().getType().getName()); + + "openflow.common.action.rev130731.CopyTtlOut", actions.get(1).getType().getName()); Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight." - + "openflow.common.action.rev130731.CopyTtlIn", actions.get(2).getAction().getType().getName()); + + "openflow.common.action.rev130731.CopyTtlIn", actions.get(2).getType().getName()); Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight." - + "openflow.common.action.rev130731.SetMplsTtl", actions.get(3).getAction().getType().getName()); + + "openflow.common.action.rev130731.SetMplsTtl", actions.get(3).getType().getName()); Assert.assertEquals("Wrong action value", 3, - actions.get(3).getAction().getAugmentation(MplsTtlAction.class).getMplsTtl().shortValue()); + actions.get(3).getAugmentation(MplsTtlAction.class).getMplsTtl().shortValue()); Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight." - + "openflow.common.action.rev130731.DecMplsTtl", actions.get(4).getAction().getType().getName()); + + "openflow.common.action.rev130731.DecMplsTtl", actions.get(4).getType().getName()); Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight." - + "openflow.common.action.rev130731.PushVlan", actions.get(5).getAction().getType().getName()); + + "openflow.common.action.rev130731.PushVlan", actions.get(5).getType().getName()); Assert.assertEquals("Wrong action value", 4, - actions.get(5).getAction().getAugmentation(EthertypeAction.class).getEthertype().getValue().intValue()); + actions.get(5).getAugmentation(EthertypeAction.class).getEthertype().getValue().intValue()); Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight." - + "openflow.common.action.rev130731.PopVlan", actions.get(6).getAction().getType().getName()); + + "openflow.common.action.rev130731.PopVlan", actions.get(6).getType().getName()); Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight." - + "openflow.common.action.rev130731.PushMpls", actions.get(7).getAction().getType().getName()); + + "openflow.common.action.rev130731.PushMpls", actions.get(7).getType().getName()); Assert.assertEquals("Wrong action value", 5, - actions.get(7).getAction().getAugmentation(EthertypeAction.class).getEthertype().getValue().intValue()); + actions.get(7).getAugmentation(EthertypeAction.class).getEthertype().getValue().intValue()); Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight." - + "openflow.common.action.rev130731.PopMpls", actions.get(8).getAction().getType().getName()); + + "openflow.common.action.rev130731.PopMpls", actions.get(8).getType().getName()); Assert.assertEquals("Wrong action value", 6, - actions.get(8).getAction().getAugmentation(EthertypeAction.class).getEthertype().getValue().intValue()); + actions.get(8).getAugmentation(EthertypeAction.class).getEthertype().getValue().intValue()); Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight." - + "openflow.common.action.rev130731.SetQueue", actions.get(9).getAction().getType().getName()); + + "openflow.common.action.rev130731.SetQueue", actions.get(9).getType().getName()); Assert.assertEquals("Wrong action value", 7, - actions.get(9).getAction().getAugmentation(QueueIdAction.class).getQueueId().intValue()); + actions.get(9).getAugmentation(QueueIdAction.class).getQueueId().intValue()); Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight." - + "openflow.common.action.rev130731.Group", actions.get(10).getAction().getType().getName()); + + "openflow.common.action.rev130731.Group", actions.get(10).getType().getName()); Assert.assertEquals("Wrong action value", 8, - actions.get(10).getAction().getAugmentation(GroupIdAction.class).getGroupId().intValue()); + actions.get(10).getAugmentation(GroupIdAction.class).getGroupId().intValue()); Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight." - + "openflow.common.action.rev130731.SetNwTtl", actions.get(11).getAction().getType().getName()); + + "openflow.common.action.rev130731.SetNwTtl", actions.get(11).getType().getName()); Assert.assertEquals("Wrong action value", 9, - actions.get(11).getAction().getAugmentation(NwTtlAction.class).getNwTtl().intValue()); + actions.get(11).getAugmentation(NwTtlAction.class).getNwTtl().intValue()); Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight." - + "openflow.common.action.rev130731.DecNwTtl", actions.get(12).getAction().getType().getName()); + + "openflow.common.action.rev130731.DecNwTtl", actions.get(12).getType().getName()); Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight." - + "openflow.common.action.rev130731.SetField", actions.get(13).getAction().getType().getName()); - List entries = actions.get(13).getAction().getAugmentation(OxmFieldsAction.class).getMatchEntries(); + + "openflow.common.action.rev130731.SetField", actions.get(13).getType().getName()); + List entries = actions.get(13).getAugmentation(OxmFieldsAction.class).getMatchEntries(); Assert.assertEquals("Wrong number of fields", 1, entries.size()); Assert.assertEquals("Wrong match entry class", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow." + "oxm.rev130731.OpenflowBasicClass", entries.get(0).getOxmClass().getName()); @@ -116,11 +116,11 @@ public class ActionsDeserializerTest { Assert.assertEquals("Wrong match entry value", 11, entries.get(0).getAugmentation(PortNumberMatchEntry.class).getPortNumber().getValue().intValue()); Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight." - + "openflow.common.action.rev130731.PushPbb", actions.get(14).getAction().getType().getName()); + + "openflow.common.action.rev130731.PushPbb", actions.get(14).getType().getName()); Assert.assertEquals("Wrong action value", 10, - actions.get(14).getAction().getAugmentation(EthertypeAction.class).getEthertype().getValue().intValue()); + actions.get(14).getAugmentation(EthertypeAction.class).getEthertype().getValue().intValue()); Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight." - + "openflow.common.action.rev130731.PopPbb", actions.get(15).getAction().getType().getName()); + + "openflow.common.action.rev130731.PopPbb", actions.get(15).getType().getName()); Assert.assertTrue("Unread data in message", message.readableBytes() == 0); } diff --git a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/ActionsSerializerTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/ActionsSerializerTest.java index 29c0e551..20d5e179 100644 --- a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/ActionsSerializerTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/ActionsSerializerTest.java @@ -52,15 +52,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev1 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetMplsTtl; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetNwTtl; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetQueue; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsList; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsListBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.actions.list.ActionBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.ActionBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.EtherType; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.InPort; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.OpenflowBasicClass; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntries; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntriesBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntries; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntriesBuilder; /** * @author michal.polkorab @@ -73,8 +72,7 @@ public class ActionsSerializerTest { */ @Test public void test() { - List actions = new ArrayList<>(); - ActionsListBuilder listBuilder = new ActionsListBuilder(); + List actions = new ArrayList<>(); ActionBuilder actionBuilder = new ActionBuilder(); actionBuilder.setType(Output.class); PortActionBuilder port = new PortActionBuilder(); @@ -83,90 +81,64 @@ public class ActionsSerializerTest { MaxLengthActionBuilder maxLen = new MaxLengthActionBuilder(); maxLen.setMaxLength(52); actionBuilder.addAugmentation(MaxLengthAction.class, maxLen.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(CopyTtlOut.class); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(CopyTtlIn.class); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(SetMplsTtl.class); MplsTtlActionBuilder mplsTtl = new MplsTtlActionBuilder(); mplsTtl.setMplsTtl((short) 4); actionBuilder.addAugmentation(MplsTtlAction.class, mplsTtl.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(DecMplsTtl.class); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(PushVlan.class); EthertypeActionBuilder etherType = new EthertypeActionBuilder(); etherType.setEthertype(new EtherType(16)); actionBuilder.addAugmentation(EthertypeAction.class, etherType.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(PopVlan.class); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(PushMpls.class); etherType = new EthertypeActionBuilder(); etherType.setEthertype(new EtherType(17)); actionBuilder.addAugmentation(EthertypeAction.class, etherType.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(PopMpls.class); etherType = new EthertypeActionBuilder(); etherType.setEthertype(new EtherType(18)); actionBuilder.addAugmentation(EthertypeAction.class, etherType.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(SetQueue.class); QueueIdActionBuilder queueId = new QueueIdActionBuilder(); queueId.setQueueId(1234L); actionBuilder.addAugmentation(QueueIdAction.class, queueId.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(Group.class); GroupIdActionBuilder group = new GroupIdActionBuilder(); group.setGroupId(555L); actionBuilder.addAugmentation(GroupIdAction.class, group.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(SetNwTtl.class); NwTtlActionBuilder nwTtl = new NwTtlActionBuilder(); nwTtl.setNwTtl((short) 8); actionBuilder.addAugmentation(NwTtlAction.class, nwTtl.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(DecNwTtl.class); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(SetField.class); OxmFieldsActionBuilder matchEntries = new OxmFieldsActionBuilder(); @@ -181,29 +153,22 @@ public class ActionsSerializerTest { entries.add(matchBuilder.build()); matchEntries.setMatchEntries(entries); actionBuilder.addAugmentation(OxmFieldsAction.class, matchEntries.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(PushPbb.class); etherType = new EthertypeActionBuilder(); etherType.setEthertype(new EtherType(19)); actionBuilder.addAugmentation(EthertypeAction.class, etherType.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(PopPbb.class); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(Experimenter.class); ExperimenterActionBuilder experimenter = new ExperimenterActionBuilder(); experimenter.setExperimenter(4L); actionBuilder.addAugmentation(ExperimenterAction.class, experimenter.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); + actions.add(actionBuilder.build()); ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer(); ActionsSerializer.encodeActions(actions, out); diff --git a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/InstructionsDeserializerTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/InstructionsDeserializerTest.java index e26672fb..d65b9552 100644 --- a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/InstructionsDeserializerTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/InstructionsDeserializerTest.java @@ -22,8 +22,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.PortAction; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.QueueIdAction; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.TableIdInstruction; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.actions.list.Action; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.Instructions; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction; /** * @author michal.polkorab @@ -42,48 +42,48 @@ public class InstructionsDeserializerTest { + "00 16 00 08 00 00 00 50 00 04 00 18 00 00 00 00 00 15 00 08 00 00 00 25 00 0F 00 08 05 00 00 00"); message.skipBytes(4); // skip XID - List instructions = InstructionsDeserializer.createInstructions(message, message.readableBytes()); - Instructions i1 = instructions.get(0); + List instructions = InstructionsDeserializer.createInstructions(message, message.readableBytes()); + Instruction i1 = instructions.get(0); Assert.assertEquals("Wrong type - i1", "org.opendaylight.yang.gen.v1.urn." + "opendaylight.openflow.common.instruction.rev130731.GotoTable", i1.getType().getName()); Assert.assertEquals("Wrong table-id - i1", 10, i1.getAugmentation(TableIdInstruction.class).getTableId().intValue()); - Instructions i2 = instructions.get(1); + Instruction i2 = instructions.get(1); Assert.assertEquals("Wrong type - i2", "org.opendaylight.yang.gen.v1.urn." + "opendaylight.openflow.common.instruction.rev130731.WriteMetadata", i2.getType().getName()); Assert.assertArrayEquals("Wrong metadata - i2", ByteBufUtils.hexStringToBytes("00 00 00 00 00 00 00 20"), i2.getAugmentation(MetadataInstruction.class).getMetadata()); Assert.assertArrayEquals("Wrong metadata-mask - i2", ByteBufUtils.hexStringToBytes("00 00 00 00 00 00 00 30"), i2.getAugmentation(MetadataInstruction.class).getMetadataMask()); - Instructions i3 = instructions.get(2); + Instruction i3 = instructions.get(2); Assert.assertEquals("Wrong type - i3", "org.opendaylight.yang.gen.v1.urn." + "opendaylight.openflow.common.instruction.rev130731.ClearActions", i3.getType().getName()); - Assert.assertEquals("Wrong instructions - i3", 0, i3.getAugmentation(ActionsInstruction.class).getActionsList().size()); - Instructions i4 = instructions.get(3); + Assert.assertEquals("Wrong instructions - i3", 0, i3.getAugmentation(ActionsInstruction.class).getAction().size()); + Instruction i4 = instructions.get(3); Assert.assertEquals("Wrong type - i4", "org.opendaylight.yang.gen.v1.urn." + "opendaylight.openflow.common.instruction.rev130731.Meter", i4.getType().getName()); Assert.assertEquals("Wrong meterId - i4", 66051, i4.getAugmentation(MeterIdInstruction.class).getMeterId().intValue()); - Instructions i5 = instructions.get(4); + Instruction i5 = instructions.get(4); Assert.assertEquals("Wrong type - i5", "org.opendaylight.yang.gen.v1.urn." + "opendaylight.openflow.common.instruction.rev130731.WriteActions", i5.getType().getName()); - Assert.assertEquals("Wrong instructions - i5", 2, i5.getAugmentation(ActionsInstruction.class).getActionsList().size()); - Action action1 = i5.getAugmentation(ActionsInstruction.class).getActionsList().get(0).getAction(); + Assert.assertEquals("Wrong instructions - i5", 2, i5.getAugmentation(ActionsInstruction.class).getAction().size()); + Action action1 = i5.getAugmentation(ActionsInstruction.class).getAction().get(0); Assert.assertEquals("Wrong action", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.Output", action1.getType().getName()); Assert.assertEquals("Wrong action", 37, action1.getAugmentation(PortAction.class).getPort().getValue().intValue()); Assert.assertEquals("Wrong action", 53, action1.getAugmentation(MaxLengthAction.class).getMaxLength().intValue()); - Action action2 = i5.getAugmentation(ActionsInstruction.class).getActionsList().get(1).getAction(); + Action action2 = i5.getAugmentation(ActionsInstruction.class).getAction().get(1); Assert.assertEquals("Wrong action", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.Group", action2.getType().getName()); Assert.assertEquals("Wrong action", 80, action2.getAugmentation(GroupIdAction.class).getGroupId().intValue()); - Instructions i6 = instructions.get(5); + Instruction i6 = instructions.get(5); Assert.assertEquals("Wrong type - i6", "org.opendaylight.yang.gen.v1.urn." + "opendaylight.openflow.common.instruction.rev130731.ApplyActions", i6.getType().getName()); - Assert.assertEquals("Wrong instructions - i6", 2, i6.getAugmentation(ActionsInstruction.class).getActionsList().size()); - action1 = i6.getAugmentation(ActionsInstruction.class).getActionsList().get(0).getAction(); + Assert.assertEquals("Wrong instructions - i6", 2, i6.getAugmentation(ActionsInstruction.class).getAction().size()); + action1 = i6.getAugmentation(ActionsInstruction.class).getAction().get(0); Assert.assertEquals("Wrong action", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetQueue", action1.getType().getName()); Assert.assertEquals("Wrong action", 37, action1.getAugmentation(QueueIdAction.class).getQueueId().intValue()); - action2 = i6.getAugmentation(ActionsInstruction.class).getActionsList().get(1).getAction(); + action2 = i6.getAugmentation(ActionsInstruction.class).getAction().get(1); Assert.assertEquals("Wrong action", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetMplsTtl", action2.getType().getName()); Assert.assertEquals("Wrong action", 5, action2.getAugmentation(MplsTtlAction.class).getMplsTtl().intValue()); diff --git a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/InstructionsSerializerTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/InstructionsSerializerTest.java index 7a90123a..192d1950 100644 --- a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/InstructionsSerializerTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/InstructionsSerializerTest.java @@ -13,9 +13,6 @@ import io.netty.buffer.UnpooledByteBufAllocator; import java.util.ArrayList; import java.util.List; - - - import org.junit.Assert; import org.junit.Test; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.ActionsInstruction; @@ -38,17 +35,16 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev1 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.PopPbb; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.PushVlan; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetNwTtl; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsList; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsListBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.actions.list.ActionBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.ActionBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.ApplyActions; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.ClearActions; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.GotoTable; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.Meter; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteActions; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteMetadata; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.Instructions; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.InstructionsBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.InstructionBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.EtherType; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber; @@ -63,15 +59,15 @@ public class InstructionsSerializerTest { */ @Test public void test() { - List instructions = new ArrayList<>(); + List instructions = new ArrayList<>(); // Goto_table instruction - InstructionsBuilder builder = new InstructionsBuilder(); + InstructionBuilder builder = new InstructionBuilder(); builder.setType(GotoTable.class); TableIdInstructionBuilder tableIdBuilder = new TableIdInstructionBuilder(); tableIdBuilder.setTableId((short) 5); builder.addAugmentation(TableIdInstruction.class, tableIdBuilder.build()); instructions.add(builder.build()); - builder = new InstructionsBuilder(); + builder = new InstructionBuilder(); // Write_metadata instruction builder.setType(WriteMetadata.class); MetadataInstructionBuilder metaBuilder = new MetadataInstructionBuilder(); @@ -80,62 +76,54 @@ public class InstructionsSerializerTest { builder.addAugmentation(MetadataInstruction.class, metaBuilder.build()); instructions.add(builder.build()); // Clear_actions instruction - builder = new InstructionsBuilder(); + builder = new InstructionBuilder(); builder.setType(ClearActions.class); instructions.add(builder.build()); // Meter instruction - builder = new InstructionsBuilder(); + builder = new InstructionBuilder(); builder.setType(Meter.class); MeterIdInstructionBuilder meterBuilder = new MeterIdInstructionBuilder(); meterBuilder.setMeterId(42L); builder.addAugmentation(MeterIdInstruction.class, meterBuilder.build()); instructions.add(builder.build()); // Write_actions instruction - builder = new InstructionsBuilder(); + builder = new InstructionBuilder(); builder.setType(WriteActions.class); ActionsInstructionBuilder actionsBuilder = new ActionsInstructionBuilder(); - List actions = new ArrayList<>(); - ActionsListBuilder listBuilder = new ActionsListBuilder(); - ActionBuilder actBuilder = new ActionBuilder(); - actBuilder.setType(Output.class); + List actions = new ArrayList<>(); + ActionBuilder actionBuilder = new ActionBuilder(); + actionBuilder.setType(Output.class); PortActionBuilder portBuilder = new PortActionBuilder(); portBuilder.setPort(new PortNumber(45L)); - actBuilder.addAugmentation(PortAction.class, portBuilder.build()); + actionBuilder.addAugmentation(PortAction.class, portBuilder.build()); MaxLengthActionBuilder maxBuilder = new MaxLengthActionBuilder(); maxBuilder.setMaxLength(55); - actBuilder.addAugmentation(MaxLengthAction.class, maxBuilder.build()); - listBuilder.setAction(actBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); - actBuilder = new ActionBuilder(); - actBuilder.setType(SetNwTtl.class); + actionBuilder.addAugmentation(MaxLengthAction.class, maxBuilder.build()); + actions.add(actionBuilder.build()); + actionBuilder = new ActionBuilder(); + actionBuilder.setType(SetNwTtl.class); NwTtlActionBuilder nwTtl = new NwTtlActionBuilder(); nwTtl.setNwTtl((short) 64); - actBuilder.addAugmentation(NwTtlAction.class, nwTtl.build()); - listBuilder.setAction(actBuilder.build()); - actions.add(listBuilder.build()); - actionsBuilder.setActionsList(actions); + actionBuilder.addAugmentation(NwTtlAction.class, nwTtl.build()); + actions.add(actionBuilder.build()); + actionsBuilder.setAction(actions); builder.addAugmentation(ActionsInstruction.class, actionsBuilder.build()); instructions.add(builder.build()); // Apply_actions instruction - builder = new InstructionsBuilder(); + builder = new InstructionBuilder(); builder.setType(ApplyActions.class); actionsBuilder = new ActionsInstructionBuilder(); actions = new ArrayList<>(); - listBuilder = new ActionsListBuilder(); - actBuilder = new ActionBuilder(); - actBuilder.setType(PushVlan.class); + actionBuilder = new ActionBuilder(); + actionBuilder.setType(PushVlan.class); EthertypeActionBuilder ethertypeBuilder = new EthertypeActionBuilder(); ethertypeBuilder.setEthertype(new EtherType(14)); - actBuilder.addAugmentation(EthertypeAction.class, ethertypeBuilder.build()); - listBuilder.setAction(actBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); - actBuilder = new ActionBuilder(); - actBuilder.setType(PopPbb.class); - listBuilder.setAction(actBuilder.build()); - actions.add(listBuilder.build()); - actionsBuilder.setActionsList(actions); + actionBuilder.addAugmentation(EthertypeAction.class, ethertypeBuilder.build()); + actions.add(actionBuilder.build()); + actionBuilder = new ActionBuilder(); + actionBuilder.setType(PopPbb.class); + actions.add(actionBuilder.build()); + actionsBuilder.setAction(actions); builder.addAugmentation(ActionsInstruction.class, actionsBuilder.build()); instructions.add(builder.build()); diff --git a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/MatchDeserializerTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/MatchDeserializerTest.java index e8cd38b9..4de1c3a8 100644 --- a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/MatchDeserializerTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/MatchDeserializerTest.java @@ -86,8 +86,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.UdpD import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.UdpSrc; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.VlanPcp; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.VlanVid; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntries; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.match.grouping.Match; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.match.grouping.Match; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntries; /** * @author michal.polkorab diff --git a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/MatchSerializerTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/MatchSerializerTest.java index b605f942..2a74162a 100644 --- a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/MatchSerializerTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/MatchSerializerTest.java @@ -36,10 +36,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Nxm0 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Nxm1Class; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.OpenflowBasicClass; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.OxmMatchType; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntries; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntriesBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.match.grouping.Match; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.match.grouping.MatchBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.match.grouping.Match; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.match.grouping.MatchBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntries; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntriesBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/MatchSerializerTest2.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/MatchSerializerTest2.java index 323a9013..4b459d5c 100644 --- a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/MatchSerializerTest2.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/MatchSerializerTest2.java @@ -116,10 +116,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.UdpD import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.UdpSrc; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.VlanPcp; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.VlanVid; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntries; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntriesBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.match.grouping.Match; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.match.grouping.MatchBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.match.grouping.Match; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.match.grouping.MatchBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntries; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntriesBuilder; /** * @author michal.polkorab diff --git a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/OF10ActionsDeserializerTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/OF10ActionsDeserializerTest.java index d2db8e2f..62b00a8f 100644 --- a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/OF10ActionsDeserializerTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/OF10ActionsDeserializerTest.java @@ -23,8 +23,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.QueueIdAction; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.VlanPcpAction; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.VlanVidAction; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsList; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.actions.list.Action; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action; /** * @author michal.polkorab @@ -52,70 +51,70 @@ public class OF10ActionsDeserializerTest { + "FF FF 00 08 00 00 12 34"); message.skipBytes(4); // skip XID - List actions = OF10ActionsDeserializer.createActionsList(message); + List actions = OF10ActionsDeserializer.createActionsList(message); Assert.assertEquals("Wrong number of actions", 13, actions.size()); - Action action1 = actions.get(0).getAction(); + Action action1 = actions.get(0); Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight" + ".openflow.common.action.rev130731.Output", action1.getType().getName()); Assert.assertEquals("Wrong port", 16, action1.getAugmentation(PortAction.class).getPort().getValue().intValue()); Assert.assertEquals("Wrong max-length", 8192, action1.getAugmentation(MaxLengthAction.class).getMaxLength().intValue()); - Action action2 = actions.get(1).getAction(); + Action action2 = actions.get(1); Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight" + ".openflow.common.action.rev130731.SetVlanVid", action2.getType().getName()); Assert.assertEquals("Wrong vlan-vid", 4112, action2.getAugmentation(VlanVidAction.class).getVlanVid().intValue()); - Action action3 = actions.get(2).getAction(); + Action action3 = actions.get(2); Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight" + ".openflow.common.action.rev130731.SetVlanPcp", action3.getType().getName()); Assert.assertEquals("Wrong vlan-pcp", 37, action3.getAugmentation(VlanPcpAction.class).getVlanPcp().intValue()); - Action action4 = actions.get(3).getAction(); + Action action4 = actions.get(3); Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight" + ".openflow.common.action.rev130731.StripVlan", action4.getType().getName()); - Action action5 = actions.get(4).getAction(); + Action action5 = actions.get(4); Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight" + ".openflow.common.action.rev130731.SetDlSrc", action5.getType().getName()); Assert.assertArrayEquals("Wrong dl-src", ByteBufUtils.macAddressToBytes("01:02:03:04:05:06"), ByteBufUtils.macAddressToBytes(action5.getAugmentation(DlAddressAction.class).getDlAddress().getValue())); - Action action6 = actions.get(5).getAction(); + Action action6 = actions.get(5); Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight" + ".openflow.common.action.rev130731.SetDlDst", action6.getType().getName()); Assert.assertArrayEquals("Wrong dl-dst", ByteBufUtils.macAddressToBytes("02:03:04:05:06:07"), ByteBufUtils.macAddressToBytes(action6.getAugmentation(DlAddressAction.class).getDlAddress().getValue())); - Action action7 = actions.get(6).getAction(); + Action action7 = actions.get(6); Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight" + ".openflow.common.action.rev130731.SetNwSrc", action7.getType().getName()); Assert.assertEquals("Wrong nw-src", new Ipv4Address("10.0.0.1"), action7.getAugmentation(IpAddressAction.class).getIpAddress()); - Action action8 = actions.get(7).getAction(); + Action action8 = actions.get(7); Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight" + ".openflow.common.action.rev130731.SetNwDst", action8.getType().getName()); Assert.assertEquals("Wrong nw-dst", new Ipv4Address("11.0.0.2"), action8.getAugmentation(IpAddressAction.class).getIpAddress()); - Action action9 = actions.get(8).getAction(); + Action action9 = actions.get(8); Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight" + ".openflow.common.action.rev130731.SetNwTos", action9.getType().getName()); Assert.assertEquals("Wrong nw-tos", 1, action9.getAugmentation(NwTosAction.class).getNwTos().intValue()); - Action action10 = actions.get(9).getAction(); + Action action10 = actions.get(9); Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight" + ".openflow.common.action.rev130731.SetTpSrc", action10.getType().getName()); Assert.assertEquals("Wrong port", 2, action10.getAugmentation(PortAction.class) .getPort().getValue().intValue()); - Action action11 = actions.get(10).getAction(); + Action action11 = actions.get(10); Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight" + ".openflow.common.action.rev130731.SetTpDst", action11.getType().getName()); Assert.assertEquals("Wrong port", 3, action11.getAugmentation(PortAction.class) .getPort().getValue().intValue()); - Action action12 = actions.get(11).getAction(); + Action action12 = actions.get(11); Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight" + ".openflow.common.action.rev130731.Enqueue", action12.getType().getName()); Assert.assertEquals("Wrong port", 4, action12.getAugmentation(PortAction.class) .getPort().getValue().intValue()); Assert.assertEquals("Wrong queue-id", 48, action12.getAugmentation(QueueIdAction.class).getQueueId().intValue()); - Action action13 = actions.get(12).getAction(); + Action action13 = actions.get(12); Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight" + ".openflow.common.action.rev130731.Experimenter", action13.getType().getName()); Assert.assertEquals("Wrong port", 4660, action13.getAugmentation(ExperimenterAction.class) diff --git a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/OF10ActionsSerializerTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/OF10ActionsSerializerTest.java index 1f5ad76a..0c1706db 100644 --- a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/OF10ActionsSerializerTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/OF10ActionsSerializerTest.java @@ -48,9 +48,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev1 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetVlanPcp; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetVlanVid; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.StripVlan; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsList; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsListBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.actions.list.ActionBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.ActionBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber; /** @@ -64,8 +63,7 @@ public class OF10ActionsSerializerTest { */ @Test public void test() { - List actions = new ArrayList<>(); - ActionsListBuilder listBuilder = new ActionsListBuilder(); + List actions = new ArrayList<>(); ActionBuilder actionBuilder = new ActionBuilder(); actionBuilder.setType(Output.class); PortActionBuilder portBuilder = new PortActionBuilder(); @@ -74,86 +72,64 @@ public class OF10ActionsSerializerTest { MaxLengthActionBuilder maxLen = new MaxLengthActionBuilder(); maxLen.setMaxLength(32); actionBuilder.addAugmentation(MaxLengthAction.class, maxLen.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(SetVlanVid.class); VlanVidActionBuilder vlanBuilder = new VlanVidActionBuilder(); vlanBuilder.setVlanVid(15); actionBuilder.addAugmentation(VlanVidAction.class, vlanBuilder.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(SetVlanPcp.class); VlanPcpActionBuilder pcpBuilder = new VlanPcpActionBuilder(); pcpBuilder.setVlanPcp((short) 16); actionBuilder.addAugmentation(VlanPcpAction.class, pcpBuilder.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(StripVlan.class); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(SetDlSrc.class); DlAddressActionBuilder dlBuilder = new DlAddressActionBuilder(); dlBuilder.setDlAddress(new MacAddress("00:00:00:02:03:04")); actionBuilder.addAugmentation(DlAddressAction.class, dlBuilder.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(SetDlDst.class); dlBuilder = new DlAddressActionBuilder(); dlBuilder.setDlAddress(new MacAddress("00:00:00:01:02:03")); actionBuilder.addAugmentation(DlAddressAction.class, dlBuilder.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(SetNwSrc.class); IpAddressActionBuilder ipBuilder = new IpAddressActionBuilder(); ipBuilder.setIpAddress(new Ipv4Address("10.0.0.1")); actionBuilder.addAugmentation(IpAddressAction.class, ipBuilder.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(SetNwDst.class); ipBuilder = new IpAddressActionBuilder(); ipBuilder.setIpAddress(new Ipv4Address("10.0.0.3")); actionBuilder.addAugmentation(IpAddressAction.class, ipBuilder.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(SetNwTos.class); NwTosActionBuilder tosBuilder = new NwTosActionBuilder(); tosBuilder.setNwTos((short) 204); actionBuilder.addAugmentation(NwTosAction.class, tosBuilder.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(SetTpSrc.class); portBuilder = new PortActionBuilder(); portBuilder.setPort(new PortNumber(6653L)); actionBuilder.addAugmentation(PortAction.class, portBuilder.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(SetTpDst.class); portBuilder = new PortActionBuilder(); portBuilder.setPort(new PortNumber(6633L)); actionBuilder.addAugmentation(PortAction.class, portBuilder.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(Enqueue.class); portBuilder = new PortActionBuilder(); @@ -162,16 +138,13 @@ public class OF10ActionsSerializerTest { QueueIdActionBuilder queueBuilder = new QueueIdActionBuilder(); queueBuilder.setQueueId(400L); actionBuilder.addAugmentation(QueueIdAction.class, queueBuilder.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(Experimenter.class); ExperimenterActionBuilder expBuilder = new ExperimenterActionBuilder(); expBuilder.setExperimenter(500L); actionBuilder.addAugmentation(ExperimenterAction.class, expBuilder.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); + actions.add(actionBuilder.build()); ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer(); OF10ActionsSerializer.encodeActionsV10(out, actions); -- 2.36.6