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;
}
}
}
// 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
}\r
\r
// OFP_ACTION AUGMENTS\r
- augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {\r
+ augment "/ofaction:actions-container/ofaction:action" {\r
ext:augment-identifier "port-action";\r
leaf port {\r
type oft:port-number;\r
}\r
}\r
- augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {\r
+ augment "/ofaction:actions-container/ofaction:action" {\r
ext:augment-identifier "max-length-action";\r
leaf max-length {\r
type uint16;\r
}\r
}\r
- augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {\r
+ augment "/ofaction:actions-container/ofaction:action" {\r
ext:augment-identifier "mpls-ttl-action";\r
leaf mpls-ttl {\r
type uint8;\r
}\r
}\r
- augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {\r
+ augment "/ofaction:actions-container/ofaction:action" {\r
ext:augment-identifier "ethertype-action";\r
leaf ethertype {\r
type oft:ether-type;\r
}\r
}\r
- augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {\r
+ augment "/ofaction:actions-container/ofaction:action" {\r
ext:augment-identifier "queue-id-action";\r
leaf queue-id {\r
type uint32;\r
}\r
}\r
- augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {\r
+ augment "/ofaction:actions-container/ofaction:action" {\r
ext:augment-identifier "group-id-action";\r
leaf group-id {\r
type uint32;\r
}\r
}\r
- augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {\r
+ augment "/ofaction:actions-container/ofaction:action" {\r
ext:augment-identifier "nw-ttl-action";\r
leaf nw-ttl {\r
type uint8;\r
}\r
}\r
- augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {\r
+ augment "/ofaction:actions-container/ofaction:action" {\r
ext:augment-identifier "oxm-fields-action";\r
- uses oxm:oxm-fields;\r
+ uses oxm:oxm-fields-grouping;\r
}\r
- augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {\r
+ augment "/ofaction:actions-container/ofaction:action" {\r
ext:augment-identifier "experimenter-action";\r
leaf experimenter {\r
type uint32;\r
}\r
}\r
// OF1.0 structures\r
- augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {\r
+ augment "/ofaction:actions-container/ofaction:action" {\r
ext:augment-identifier "vlan-vid-action";\r
leaf vlan-vid {\r
type uint16;\r
}\r
}\r
- augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {\r
+ augment "/ofaction:actions-container/ofaction:action" {\r
ext:augment-identifier "vlan-pcp-action";\r
leaf vlan-pcp {\r
type uint8;\r
}\r
}\r
- augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {\r
+ augment "/ofaction:actions-container/ofaction:action" {\r
ext:augment-identifier "dl-address-action";\r
leaf dl-address {\r
type yang:mac-address;\r
}\r
}\r
- augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {\r
+ augment "/ofaction:actions-container/ofaction:action" {\r
ext:augment-identifier "nw-tos-action";\r
leaf nw-tos {\r
type uint8;\r
}\r
}\r
- augment "/ofaction:actions-container/ofaction:actions-list/ofaction:action" {\r
+ augment "/ofaction:actions-container/ofaction:action" {\r
ext:augment-identifier "ip-address-action";\r
leaf ip-address {\r
type inet:ipv4-address;\r
// OFP_TABLE_FEATURES_PROPERTIES AUGMENTS\r
augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {\r
ext:augment-identifier "instruction-related-table-feature-property";\r
- uses ofinstruction:instructions;\r
+ uses ofinstruction:instructions-grouping;\r
}\r
augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {\r
ext:augment-identifier "next-table-related-table-feature-property";\r
}\r
augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {\r
ext:augment-identifier "action-related-table-feature-property";\r
- uses ofaction:actions;\r
+ uses ofaction:actions-grouping;\r
}\r
augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {\r
ext:augment-identifier "oxm-related-table-feature-property";\r
- uses oxm:oxm-fields;\r
+ uses oxm:oxm-fields-grouping;\r
}\r
augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" {\r
ext:augment-identifier "experimenter-related-table-feature-property";\r
}\r
\r
// OFP_INSTRUCTION AUGMENTS\r
- augment "/ofinstruction:instruction-container/ofinstruction:instructions" {\r
+ augment "/ofinstruction:instruction-container/ofinstruction:instruction" {\r
ext:augment-identifier "table-id-instruction";\r
leaf table-id {\r
type uint8;\r
}\r
}\r
- augment "/ofinstruction:instruction-container/ofinstruction:instructions" {\r
+ augment "/ofinstruction:instruction-container/ofinstruction:instruction" {\r
ext:augment-identifier "metadata-instruction";\r
leaf metadata {\r
type binary;\r
type binary;\r
}\r
}\r
- augment "/ofinstruction:instruction-container/ofinstruction:instructions" {\r
+ augment "/ofinstruction:instruction-container/ofinstruction:instruction" {\r
ext:augment-identifier "actions-instruction";\r
- uses ofaction:actions;\r
+ uses ofaction:actions-grouping;\r
}\r
- augment "/ofinstruction:instruction-container/ofinstruction:instructions" {\r
+ augment "/ofinstruction:instruction-container/ofinstruction:instruction" {\r
ext:augment-identifier "meter-id-instruction";\r
leaf meter-id {\r
type uint32;\r
}\r
}\r
- augment "/ofinstruction:instruction-container/ofinstruction:instructions" {\r
+ augment "/ofinstruction:instruction-container/ofinstruction:instruction" {\r
ext:augment-identifier "experimenter-instruction";\r
leaf experimenter {\r
type uint32;\r
}
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";
}
}
}
-
+
+ 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 {
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;
}
}
}
}\r
\r
// Generic Structures\r
- grouping port {\r
+ grouping port-grouping {\r
reference "ofp_port";\r
leaf port-no {\r
type uint32;\r
}\r
}\r
\r
- grouping match-grouping {\r
- container match {\r
- description "Match structure (OF v1.3)";\r
- leaf type {\r
- type identityref {\r
- base oft:match-type-base;\r
- }\r
- }\r
- uses oxm:oxm-fields;\r
- }\r
- }\r
-\r
- grouping buckets {\r
+ grouping buckets-grouping {\r
list buckets-list {\r
- uses bucket;\r
+ uses bucket-grouping;\r
}\r
}\r
\r
- grouping bucket {\r
+ grouping bucket-grouping {\r
description "Bucket for use in groups.";\r
leaf weight {\r
description "Relative weight of bucket. Only\r
type uint32;\r
}\r
\r
- uses ofaction:actions;\r
+ uses ofaction:actions-grouping;\r
}\r
\r
container table-features-properties-container {\r
- uses table-features-properties;\r
+ uses table-features-properties-grouping;\r
}\r
\r
- grouping table-features-properties {\r
+ grouping table-features-properties-grouping {\r
list table-feature-properties {\r
key "type";\r
leaf type {\r
type oft:action-type-v10;\r
}\r
list phy-port {\r
- uses port;\r
+ uses port-grouping;\r
}\r
}\r
grouping get-config-request {\r
// Cookie of the flow entry that was looked up.\r
type uint64;\r
}\r
- uses match-grouping;\r
+ uses oxm:match-grouping;\r
\r
leaf data {\r
type binary;\r
leaf byte-count {\r
type uint64;\r
}\r
- uses match-grouping;\r
+ uses oxm:match-grouping;\r
\r
// OF1.0 structures\r
uses oxm:match-v10-grouping;\r
\r
uses ofHeader;\r
\r
- uses port;\r
+ uses port-grouping;\r
\r
leaf reason {\r
type oft:port-reason;\r
\r
uses ofHeader;\r
\r
- uses ofaction:actions;\r
+ uses ofaction:actions-grouping;\r
\r
leaf data {\r
type binary;\r
leaf flags {\r
type oft:flow-mod-flags;\r
}\r
- uses match-grouping;\r
+ uses oxm:match-grouping;\r
\r
- uses ofinstruction:instructions;\r
+ uses ofinstruction:instructions-grouping;\r
\r
// OF1.0 structures\r
leaf flags-v10 {\r
type oft:flow-mod-flags-v10;\r
}\r
uses oxm:match-v10-grouping;\r
- uses ofaction:actions;\r
+ uses ofaction:actions-grouping;\r
} \r
grouping group-mod {\r
reference "OFPT_GROUP_MOD message in Openflow Switch 1.3 Spec";\r
type oft:group-id;\r
}\r
\r
- uses buckets;\r
+ uses buckets-grouping;\r
}\r
\r
grouping port-mod {\r
leaf cookie-mask {\r
type uint64;\r
}\r
- uses match-grouping;\r
+ uses oxm:match-grouping;\r
\r
// OF1.0 structures\r
uses oxm:match-v10-grouping;\r
leaf cookie-mask {\r
type uint64;\r
}\r
- uses match-grouping;\r
+ uses oxm:match-grouping;\r
\r
// OF1.0 structures\r
uses oxm:match-v10-grouping;\r
leaf max-entries {\r
type uint32;\r
}\r
- uses table-features-properties;\r
+ uses table-features-properties-grouping;\r
}\r
}\r
}\r
leaf byte-count {\r
type uint64;\r
}\r
- uses match-grouping;\r
+ uses oxm:match-grouping;\r
\r
- uses ofinstruction:instructions;\r
+ uses ofinstruction:instructions-grouping;\r
\r
// OF1.0 structures\r
uses oxm:match-v10-grouping;\r
- uses ofaction:actions;\r
+ uses ofaction:actions-grouping;\r
}\r
}\r
}\r
leaf group-id {\r
type oft:group-id;\r
}\r
- uses buckets;\r
+ uses buckets-grouping;\r
}\r
}\r
}\r
leaf max-entries {\r
type uint32;\r
}\r
- uses table-features-properties;\r
+ uses table-features-properties-grouping;\r
}\r
}\r
}\r
case multipart-reply-port-desc-case {\r
container multipart-reply-port-desc {\r
list ports {\r
- uses port;\r
+ uses port-grouping;\r
}\r
}\r
}\r
reference "OFPT_GET_ASYNC_REQUEST message in Openflow Switch 1.3 Spec";\r
/* Controller/switch message */\r
\r
- uses ofHeader; \r
+ uses ofHeader;\r
} \r
grouping get-async-reply {\r
reference "OFPT_GET_ASYNC_REPLY message in Openflow Switch 1.3 Spec";\r
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";
}
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;
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;
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
subInput.readBytes(byteCount);
flowStatsBuilder.setByteCount(new BigInteger(1, byteCount));
flowStatsBuilder.setMatch(MatchDeserializer.createMatch(subInput));
- flowStatsBuilder.setInstructions(InstructionsDeserializer.createInstructions(subInput, subInput.readableBytes()));
+ flowStatsBuilder.setInstruction(InstructionsDeserializer.createInstructions(subInput, subInput.readableBytes()));
flowStatsList.add(flowStatsBuilder.build());
}
flowBuilder.setFlowStats(flowStatsList);
if (type.equals(TableFeaturesPropType.OFPTFPTINSTRUCTIONS)
|| type.equals(TableFeaturesPropType.OFPTFPTINSTRUCTIONSMISS)) {
InstructionRelatedTableFeaturePropertyBuilder insBuilder = new InstructionRelatedTableFeaturePropertyBuilder();
- insBuilder.setInstructions(InstructionsDeserializer.createInstructionIds(input, propertyLength - COMMON_PROPERTY_LENGTH));
+ insBuilder.setInstruction(InstructionsDeserializer.createInstructionIds(input, propertyLength - COMMON_PROPERTY_LENGTH));
builder.addAugmentation(InstructionRelatedTableFeatureProperty.class, insBuilder.build());
} else if (type.equals(TableFeaturesPropType.OFPTFPTNEXTTABLES)
|| type.equals(TableFeaturesPropType.OFPTFPTNEXTTABLESMISS)) {
|| type.equals(TableFeaturesPropType.OFPTFPTAPPLYACTIONS)
|| type.equals(TableFeaturesPropType.OFPTFPTAPPLYACTIONSMISS)) {
ActionRelatedTableFeaturePropertyBuilder actionBuilder = new ActionRelatedTableFeaturePropertyBuilder();
- actionBuilder.setActionsList(ActionsDeserializer.createActionIds(input, propertyLength - COMMON_PROPERTY_LENGTH));
+ actionBuilder.setAction(ActionsDeserializer.createActionIds(input, propertyLength - COMMON_PROPERTY_LENGTH));
builder.addAugmentation(ActionRelatedTableFeatureProperty.class, actionBuilder.build());
} else if (type.equals(TableFeaturesPropType.OFPTFPTMATCH)
|| type.equals(TableFeaturesPropType.OFPTFPTWILDCARDS)
bucketsBuilder.setWatchPort(new PortNumber(input.readUnsignedInt()));
bucketsBuilder.setWatchGroup(input.readUnsignedInt());
input.skipBytes(PADDING_IN_BUCKETS_HEADER);
- List<ActionsList> actionsList = ActionsDeserializer
- .createActionsList(input, bucketsLength - BUCKETS_HEADER_LENGTH);
- bucketsBuilder.setActionsList(actionsList);
+ List<Action> actionsList = ActionsDeserializer
+ .createActions(input, bucketsLength - BUCKETS_HEADER_LENGTH);
+ bucketsBuilder.setAction(actionsList);
bucketsList.add(bucketsBuilder.build());
actualLength += bucketsLength;
}
byte[] byteCount = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(byteCount);
flowStatsBuilder.setByteCount(new BigInteger(1, byteCount));
- flowStatsBuilder.setActionsList(OF10ActionsDeserializer
+ flowStatsBuilder.setAction(OF10ActionsDeserializer
.createActionsList(input, length - LENGTH_OF_FLOW_STATS));
flowStatsList.add(flowStatsBuilder.build());
}
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
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
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);
}
}
}
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;
}
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;
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;
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
if (featProp.getAugmentation(InstructionRelatedTableFeatureProperty.class) != null) {
InstructionRelatedTableFeatureProperty property =
featProp.getAugmentation(InstructionRelatedTableFeatureProperty.class);
- length += property.getInstructions().size() * STRUCTURE_HEADER_LENGTH;
+ length += property.getInstruction().size() * STRUCTURE_HEADER_LENGTH;
length += paddingNeeded(length);
} else if (featProp.getAugmentation(NextTableRelatedTableFeatureProperty.class) != null) {
NextTableRelatedTableFeatureProperty property =
} else if (featProp.getAugmentation(ActionRelatedTableFeatureProperty.class) != null) {
ActionRelatedTableFeatureProperty property =
featProp.getAugmentation(ActionRelatedTableFeatureProperty.class);
- length += property.getActionsList().size() * STRUCTURE_HEADER_LENGTH;
+ length += property.getAction().size() * STRUCTURE_HEADER_LENGTH;
length += paddingNeeded(length);
} else if (featProp.getAugmentation(OxmRelatedTableFeatureProperty.class) != null) {
OxmRelatedTableFeatureProperty property =
private static void writeInstructionRelatedTableProperty(ByteBuf output,
TableFeatureProperties property, byte code) {
output.writeShort(code);
- List<Instructions> instructions = property.
- getAugmentation(InstructionRelatedTableFeatureProperty.class).getInstructions();
+ List<Instruction> 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 {
private static void writeActionsRelatedTableProperty(ByteBuf output,
TableFeatureProperties property, byte code) {
output.writeShort(code);
- List<ActionsList> actions = property.
- getAugmentation(ActionRelatedTableFeatureProperty.class).getActionsList();
+ List<Action> 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;
out.writeInt(message.getBufferId().intValue());
out.writeShort(message.getOutPort().getValue().intValue());
out.writeShort(createFlowModFlagsBitmask(message.getFlagsV10()));
- OF10ActionsSerializer.encodeActionsV10(out, message.getActionsList());
+ OF10ActionsSerializer.encodeActionsV10(out, message.getAction());
}
@Override
public int computeLength(FlowModInput message) {
- return MESSAGE_LENGTH + OF10ActionsSerializer.computeActionsLength(message.getActionsList());
+ return MESSAGE_LENGTH + OF10ActionsSerializer.computeActionsLength(message.getAction());
}
@Override
ByteBufUtils.writeOFHeader(instance, message, out);
out.writeInt(message.getBufferId().intValue());
out.writeShort(message.getInPort().getValue().intValue());
- out.writeShort(OF10ActionsSerializer.computeActionsLength(message.getActionsList()));
- OF10ActionsSerializer.encodeActionsV10(out, message.getActionsList());
+ out.writeShort(OF10ActionsSerializer.computeActionsLength(message.getAction()));
+ OF10ActionsSerializer.encodeActionsV10(out, message.getAction());
byte[] data = message.getData();
if (data != null) {
out.writeBytes(data);
@Override
public int computeLength(PacketOutInput message) {
- int length = MESSAGE_LENGTH + OF10ActionsSerializer.computeActionsLength(message.getActionsList());
+ int length = MESSAGE_LENGTH + OF10ActionsSerializer.computeActionsLength(message.getAction());
byte[] data = message.getData();
if (data != null) {
length += data.length;
ByteBufUtils.writeOFHeader(instance, message, out);
out.writeInt(message.getBufferId().intValue());
out.writeInt(message.getInPort().getValue().intValue());
- out.writeShort(ActionsSerializer.computeLengthOfActions(message.getActionsList()));
+ out.writeShort(ActionsSerializer.computeLengthOfActions(message.getAction()));
ByteBufUtils.padBuffer(PADDING_IN_PACKET_OUT_MESSAGE, out);
- ActionsSerializer.encodeActions(message.getActionsList(), out);
+ ActionsSerializer.encodeActions(message.getAction(), out);
byte[] data = message.getData();
if (data != null) {
out.writeBytes(data);
@Override
public int computeLength(PacketOutInput message) {
int length = MESSAGE_LENGTH;
- length += ActionsSerializer.computeLengthOfActions(message.getActionsList());
+ length += ActionsSerializer.computeLengthOfActions(message.getAction());
byte[] data = message.getData();
if (data != null) {
length += data.length;
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.ActionBase;
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;
* @param actionsLength length of buckets
* @return ActionsList
*/
- public static List<ActionsList> createActionsList(ByteBuf input, int actionsLength) {
- ActionsListBuilder actionsListBuilder = new ActionsListBuilder();
- List<ActionsList> actionsList = new ArrayList<>();
+ public static List<Action> createActions(ByteBuf input, int actionsLength) {
+ List<Action> 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;
}
/**
* @param actionsLength length of actions
* @return ActionsList
*/
- public static List<ActionsList> createActionIds(ByteBuf input, int actionsLength) {
- List<ActionsList> actionsList = new ArrayList<>();
+ public static List<Action> createActionIds(ByteBuf input, int actionsLength) {
+ List<Action> 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);
default:
break;
}
- listBuilder.setAction(builder.build());
- actionsList.add(listBuilder.build());
+ actionsList.add(builder.build());
length += currentActionLength;
}
return actionsList;
}
- private static ActionsList createEmptyHeader(Class<? extends org.opendaylight.yang.gen.v1.
- urn.opendaylight.openflow.common.types.rev130731.Action> action,
- ByteBuf in, ActionsListBuilder actionsListBuilder) {
- ActionBuilder actionBuilder = new ActionBuilder();
+ private static Action createEmptyHeader(Class<? extends ActionBase> 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()));
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<? extends org.opendaylight.yang.gen.
- v1.urn.opendaylight.openflow.common.types.rev130731.Action> action,
- ByteBuf in, ActionsListBuilder actionsListBuilder) {
- ActionBuilder actionBuilder = new ActionBuilder();
+ private static Action createPushAction(Class<? extends ActionBase> 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();
}
}
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)
* @param actionsList list of actions to be encoded
* @param outBuffer output ByteBuf
*/
- public static void encodeActions(List<ActionsList> actionsList, ByteBuf outBuffer) {
+ public static void encodeActions(List<Action> 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)) {
* @param actionsList list of actions to be encoded
* @param outBuffer output ByteBuf
*/
- public static void encodeActionIds(List<ActionsList> actionsList, ByteBuf outBuffer) {
+ public static void encodeActionIds(List<Action> 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)) {
* @param actionsList list of actions
* @return actions length
*/
- public static int computeLengthOfActions(List<ActionsList> actionsList) {
+ public static int computeLengthOfActions(List<Action> 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)){
package org.opendaylight.openflowjava.protocol.impl.util;
+import io.netty.buffer.ByteBuf;
+
import java.util.ArrayList;
import java.util.List;
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
* @param length
* @return list of ofp_instruction
*/
- public static List<Instructions> createInstructions(ByteBuf input, int length) {
- List<Instructions> instructions = new ArrayList<>();
+ public static List<Instruction> createInstructions(ByteBuf input, int length) {
+ List<Instruction> 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;
* @param length
* @return list of ofp_instruction without values
*/
- public static List<Instructions> createInstructionIds(ByteBuf input, int length) {
- List<Instructions> instructions = new ArrayList<>();
+ public static List<Instruction> createInstructionIds(ByteBuf input, int length) {
+ List<Instruction> 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;
return instructions;
}
- private static void createGotoTableInstruction(InstructionsBuilder builder,
+ private static void createGotoTableInstruction(InstructionBuilder builder,
ByteBuf input) {
builder.setType(GotoTable.class);
TableIdInstructionBuilder tableBuilder = new TableIdInstructionBuilder();
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);
}
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());
}
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;
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
* @param instructions List of instructions
* @param out output buffer
*/
- public static void encodeInstructions(List<Instructions> instructions, ByteBuf out) {
+ public static void encodeInstructions(List<Instruction> instructions, ByteBuf out) {
if (instructions != null) {
- for (Instructions instruction : instructions) {
- Class<? extends Instruction> type = instruction.getType();
+ for (Instruction instruction : instructions) {
+ Class<? extends InstructionBase> type = instruction.getType();
if (type.isAssignableFrom(GotoTable.class)) {
writeTypeAndLength(out, GOTO_TABLE_TYPE, GOTO_TABLE_LENGTH);
out.writeByte(instruction.getAugmentation(TableIdInstruction.class).getTableId());
* @param instructions List of instruction identifiers (without values)
* @param out output buffer
*/
- public static void encodeInstructionIds(List<Instructions> instructions, ByteBuf out) {
+ public static void encodeInstructionIds(List<Instruction> instructions, ByteBuf out) {
if (instructions != null) {
- for (Instructions instruction : instructions) {
- Class<? extends Instruction> type = instruction.getType();
+ for (Instruction instruction : instructions) {
+ Class<? extends InstructionBase> type = instruction.getType();
if (type.isAssignableFrom(GotoTable.class)) {
writeTypeAndLength(out, GOTO_TABLE_TYPE, INSTRUCTION_IDS_LENGTH);
} else if (type.isAssignableFrom(WriteMetadata.class)) {
}
private static void writeActionsInstruction(ByteBuf out,
- Instructions instruction, int type) {
+ Instruction instruction, int type) {
out.writeShort(type);
if (instruction.getAugmentation(ActionsInstruction.class) != null) {
- List<ActionsList> actions = instruction.getAugmentation(ActionsInstruction.class).getActionsList();
+ List<Action> 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);
* @param instructions List of instructions
* @return length of instructions (in bytes)
*/
- public static int computeInstructionsLength(List<Instructions> instructions) {
+ public static int computeInstructionsLength(List<Instruction> instructions) {
int length = 0;
if (instructions != null) {
- for (Instructions instruction : instructions) {
- Class<? extends Instruction> type = instruction.getType();
+ for (Instruction instruction : instructions) {
+ Class<? extends InstructionBase> type = instruction.getType();
if (type.isAssignableFrom(GotoTable.class)) {
length += GOTO_TABLE_LENGTH;
} else if (type.isAssignableFrom(WriteMetadata.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(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;
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;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.UdpSrc;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.VlanPcp;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.VlanVid;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntries;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntriesBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntries;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntriesBuilder;\r
\r
/**\r
* Encodes match ids (oxm_ids) needed in Multipart-TableFeatures messages\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.UdpSrc;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.VlanPcp;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.VlanVid;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntries;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntries;\r
\r
/**\r
* Encodes match ids (oxm_ids) needed in Multipart-TableFeatures messages\r
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;
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;
* @param input input ByteBuf
* @return ActionsList list of actions
*/
- public static List<ActionsList> createActionsList(ByteBuf input) {
- List<ActionsList> actions = new ArrayList<>();
+ public static List<Action> createActionsList(ByteBuf input) {
+ List<Action> actions = new ArrayList<>();
while (input.readableBytes() > 0) {
int type = input.readUnsignedShort();
input.skipBytes(EncodeConstants.SIZE_OF_SHORT_IN_BYTES);
* @param actionsLength length of actions
* @return ActionsList list of actions
*/
- public static List<ActionsList> createActionsList(ByteBuf input, int actionsLength) {
- List<ActionsList> actions = new ArrayList<>();
+ public static List<Action> createActionsList(ByteBuf input, int actionsLength) {
+ List<Action> actions = new ArrayList<>();
int currentLength = 0;
while (currentLength < actionsLength) {
int type = input.readUnsignedShort();
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);
* @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();
}
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();
}
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();
}
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();
}
-
-
+
}
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
/**
* 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> actionsList) {
- if (actionsList == null) {
+ public static void encodeActionsV10(ByteBuf out, List<Action> 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)) {
/**
* Computes length of actions
- * @param actionsList
+ * @param actions
* @return length of actions (OpenFlow v1.0)
*/
- public static int computeActionsLength(List<ActionsList> actionsList) {
+ public static int computeActionsLength(List<Action> 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)) {
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());
}
/**
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());
}
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());
}
/**
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());
}
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.VlanVidAction;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.Output;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetVlanVid;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.actions.list.Action;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.FlowWildcardsV10;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessage;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.MultipartReplyAggregateCase;\r
Assert.assertEquals("Wrong byteCount",\r
new BigInteger(1, new byte[]{(byte) 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20}), \r
message.getFlowStats().get(0).getByteCount());\r
- Action action1 = message.getFlowStats().get(0).getActionsList().get(0).getAction();\r
+ Action action1 = message.getFlowStats().get(0).getAction().get(0);\r
Assert.assertEquals("Wrong action type", Output.class, action1.getType());\r
Assert.assertEquals("Wrong action port", 1, action1.getAugmentation(PortAction.class)\r
.getPort().getValue().intValue());\r
Assert.assertEquals("Wrong action port", 2, action1.getAugmentation(MaxLengthAction.class)\r
.getMaxLength().intValue());\r
- Action action2 = message.getFlowStats().get(0).getActionsList().get(1).getAction();\r
+ Action action2 = message.getFlowStats().get(0).getAction().get(1);\r
Assert.assertEquals("Wrong action type", SetVlanVid.class, action2.getType());\r
Assert.assertEquals("Wrong action port", 3, action2.getAugmentation(VlanVidAction.class)\r
.getVlanVid().intValue());\r
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;
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
entries.add(entriesBuilder.build());
matchBuilder.setMatchEntries(entries);
builder.setMatch(matchBuilder.build());
- List<Instructions> instructions = new ArrayList<>();
- InstructionsBuilder insBuilder = new InstructionsBuilder();
+ List<Instruction> instructions = new ArrayList<>();
+ InstructionBuilder insBuilder = new InstructionBuilder();
insBuilder.setType(GotoTable.class);
TableIdInstructionBuilder idBuilder = new TableIdInstructionBuilder();
idBuilder.setTableId((short) 43);
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();
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
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;
builder.setBufferId(2L);
builder.setOutPort(new PortNumber(4422L));
builder.setFlagsV10(new FlowModFlagsV10(true, false, true));
- List<ActionsList> actions = new ArrayList<>();
- ActionsListBuilder actionsListBuilder = new ActionsListBuilder();
+ List<Action> 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();
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;
BufferHelper.setupHeader(builder, EncodeConstants.OF10_VERSION_ID);
builder.setBufferId(256L);
builder.setInPort(new PortNumber(257L));
- List<ActionsList> actions = new ArrayList<>();
- ActionsListBuilder actionsListBuilder = new ActionsListBuilder();
+ List<Action> actions = new ArrayList<>();
ActionBuilder actionBuilder = new ActionBuilder();
actionBuilder.setType(Output.class);
PortActionBuilder portBuilder = new PortActionBuilder();
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();
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;
BufferHelper.setupHeader(builder, EncodeConstants.OF13_VERSION_ID);
builder.setBufferId(256L);
builder.setInPort(new PortNumber(256L));
- List<ActionsList> actions = new ArrayList<>();
- ActionsListBuilder actionsListBuilder = new ActionsListBuilder();
+ List<Action> 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();
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.Meter;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteActions;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteMetadata;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.Instructions;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.InstructionsBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.InstructionBuilder;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartRequestFlags;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartType;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.TableConfig;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Nxm0Class;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Nxm1Class;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.OpenflowBasicClass;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntries;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntriesBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntries;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntriesBuilder;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInput;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInputBuilder;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestTableFeaturesCaseBuilder;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.table.features._case.MultipartRequestTableFeaturesBuilder;\r
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;\r
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;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.TableFeatureProperties;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.TableFeaturePropertiesBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.grouping.TableFeatureProperties;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.grouping.TableFeaturePropertiesBuilder;\r
\r
/**\r
* @author michal.polkorab\r
propBuilder.setType(TableFeaturesPropType.OFPTFPTINSTRUCTIONS);\r
InstructionRelatedTableFeaturePropertyBuilder insPropBuilder =\r
new InstructionRelatedTableFeaturePropertyBuilder();\r
- List<Instructions> insIds = new ArrayList<>();\r
- InstructionsBuilder insBuilder = new InstructionsBuilder();\r
+ List<Instruction> insIds = new ArrayList<>();\r
+ InstructionBuilder insBuilder = new InstructionBuilder();\r
insBuilder.setType(WriteActions.class);\r
insIds.add(insBuilder.build());\r
- insBuilder = new InstructionsBuilder();\r
+ insBuilder = new InstructionBuilder();\r
insBuilder.setType(GotoTable.class);\r
insIds.add(insBuilder.build());\r
- insPropBuilder.setInstructions(insIds);\r
+ insPropBuilder.setInstruction(insIds);\r
propBuilder.addAugmentation(InstructionRelatedTableFeatureProperty.class, insPropBuilder.build());\r
properties.add(propBuilder.build());\r
propBuilder = new TableFeaturePropertiesBuilder();\r
propBuilder.setType(TableFeaturesPropType.OFPTFPTINSTRUCTIONSMISS);\r
insPropBuilder = new InstructionRelatedTableFeaturePropertyBuilder();\r
insIds = new ArrayList<>();\r
- insBuilder = new InstructionsBuilder();\r
+ insBuilder = new InstructionBuilder();\r
insBuilder.setType(WriteMetadata.class);\r
insIds.add(insBuilder.build());\r
- insBuilder = new InstructionsBuilder();\r
+ insBuilder = new InstructionBuilder();\r
insBuilder.setType(ApplyActions.class);\r
insIds.add(insBuilder.build());\r
- insBuilder = new InstructionsBuilder();\r
+ insBuilder = new InstructionBuilder();\r
insBuilder.setType(Meter.class);\r
insIds.add(insBuilder.build());\r
- insBuilder = new InstructionsBuilder();\r
+ insBuilder = new InstructionBuilder();\r
insBuilder.setType(ClearActions.class);\r
insIds.add(insBuilder.build());\r
- insBuilder = new InstructionsBuilder();\r
+ insBuilder = new InstructionBuilder();\r
insBuilder.setType(GotoTable.class);\r
insIds.add(insBuilder.build());\r
- insPropBuilder.setInstructions(insIds);\r
+ insPropBuilder.setInstruction(insIds);\r
propBuilder.addAugmentation(InstructionRelatedTableFeatureProperty.class, insPropBuilder.build());\r
properties.add(propBuilder.build());\r
tableFeaturesBuilder.setTableFeatureProperties(properties);\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.PortAction;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.PortNumberMatchEntry;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.QueueIdAction;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsList;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntries;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntries;\r
import org.slf4j.Logger;\r
import org.slf4j.LoggerFactory;\r
\r
\r
message.skipBytes(4); // skip XID\r
LOGGER.info("bytes: " + message.readableBytes());\r
- List<ActionsList> actions = ActionsDeserializer.createActionsList(message, message.readableBytes());\r
+ List<Action> actions = ActionsDeserializer.createActions(message, message.readableBytes());\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight."\r
- + "openflow.common.action.rev130731.Output", actions.get(0).getAction().getType().getName());\r
+ + "openflow.common.action.rev130731.Output", actions.get(0).getType().getName());\r
Assert.assertEquals("Wrong action port", 1,\r
- actions.get(0).getAction().getAugmentation(PortAction.class).getPort().getValue().intValue());\r
+ actions.get(0).getAugmentation(PortAction.class).getPort().getValue().intValue());\r
Assert.assertEquals("Wrong action max-length", 2,\r
- actions.get(0).getAction().getAugmentation(MaxLengthAction.class).getMaxLength().intValue());\r
+ actions.get(0).getAugmentation(MaxLengthAction.class).getMaxLength().intValue());\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight."\r
- + "openflow.common.action.rev130731.CopyTtlOut", actions.get(1).getAction().getType().getName());\r
+ + "openflow.common.action.rev130731.CopyTtlOut", actions.get(1).getType().getName());\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight."\r
- + "openflow.common.action.rev130731.CopyTtlIn", actions.get(2).getAction().getType().getName());\r
+ + "openflow.common.action.rev130731.CopyTtlIn", actions.get(2).getType().getName());\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight."\r
- + "openflow.common.action.rev130731.SetMplsTtl", actions.get(3).getAction().getType().getName());\r
+ + "openflow.common.action.rev130731.SetMplsTtl", actions.get(3).getType().getName());\r
Assert.assertEquals("Wrong action value", 3,\r
- actions.get(3).getAction().getAugmentation(MplsTtlAction.class).getMplsTtl().shortValue());\r
+ actions.get(3).getAugmentation(MplsTtlAction.class).getMplsTtl().shortValue());\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight."\r
- + "openflow.common.action.rev130731.DecMplsTtl", actions.get(4).getAction().getType().getName());\r
+ + "openflow.common.action.rev130731.DecMplsTtl", actions.get(4).getType().getName());\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight."\r
- + "openflow.common.action.rev130731.PushVlan", actions.get(5).getAction().getType().getName());\r
+ + "openflow.common.action.rev130731.PushVlan", actions.get(5).getType().getName());\r
Assert.assertEquals("Wrong action value", 4,\r
- actions.get(5).getAction().getAugmentation(EthertypeAction.class).getEthertype().getValue().intValue());\r
+ actions.get(5).getAugmentation(EthertypeAction.class).getEthertype().getValue().intValue());\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight."\r
- + "openflow.common.action.rev130731.PopVlan", actions.get(6).getAction().getType().getName());\r
+ + "openflow.common.action.rev130731.PopVlan", actions.get(6).getType().getName());\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight."\r
- + "openflow.common.action.rev130731.PushMpls", actions.get(7).getAction().getType().getName());\r
+ + "openflow.common.action.rev130731.PushMpls", actions.get(7).getType().getName());\r
Assert.assertEquals("Wrong action value", 5,\r
- actions.get(7).getAction().getAugmentation(EthertypeAction.class).getEthertype().getValue().intValue());\r
+ actions.get(7).getAugmentation(EthertypeAction.class).getEthertype().getValue().intValue());\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight."\r
- + "openflow.common.action.rev130731.PopMpls", actions.get(8).getAction().getType().getName());\r
+ + "openflow.common.action.rev130731.PopMpls", actions.get(8).getType().getName());\r
Assert.assertEquals("Wrong action value", 6,\r
- actions.get(8).getAction().getAugmentation(EthertypeAction.class).getEthertype().getValue().intValue());\r
+ actions.get(8).getAugmentation(EthertypeAction.class).getEthertype().getValue().intValue());\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight."\r
- + "openflow.common.action.rev130731.SetQueue", actions.get(9).getAction().getType().getName());\r
+ + "openflow.common.action.rev130731.SetQueue", actions.get(9).getType().getName());\r
Assert.assertEquals("Wrong action value", 7,\r
- actions.get(9).getAction().getAugmentation(QueueIdAction.class).getQueueId().intValue());\r
+ actions.get(9).getAugmentation(QueueIdAction.class).getQueueId().intValue());\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight."\r
- + "openflow.common.action.rev130731.Group", actions.get(10).getAction().getType().getName());\r
+ + "openflow.common.action.rev130731.Group", actions.get(10).getType().getName());\r
Assert.assertEquals("Wrong action value", 8,\r
- actions.get(10).getAction().getAugmentation(GroupIdAction.class).getGroupId().intValue());\r
+ actions.get(10).getAugmentation(GroupIdAction.class).getGroupId().intValue());\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight."\r
- + "openflow.common.action.rev130731.SetNwTtl", actions.get(11).getAction().getType().getName());\r
+ + "openflow.common.action.rev130731.SetNwTtl", actions.get(11).getType().getName());\r
Assert.assertEquals("Wrong action value", 9,\r
- actions.get(11).getAction().getAugmentation(NwTtlAction.class).getNwTtl().intValue());\r
+ actions.get(11).getAugmentation(NwTtlAction.class).getNwTtl().intValue());\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight."\r
- + "openflow.common.action.rev130731.DecNwTtl", actions.get(12).getAction().getType().getName());\r
+ + "openflow.common.action.rev130731.DecNwTtl", actions.get(12).getType().getName());\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight."\r
- + "openflow.common.action.rev130731.SetField", actions.get(13).getAction().getType().getName());\r
- List<MatchEntries> entries = actions.get(13).getAction().getAugmentation(OxmFieldsAction.class).getMatchEntries();\r
+ + "openflow.common.action.rev130731.SetField", actions.get(13).getType().getName());\r
+ List<MatchEntries> entries = actions.get(13).getAugmentation(OxmFieldsAction.class).getMatchEntries();\r
Assert.assertEquals("Wrong number of fields", 1, entries.size());\r
Assert.assertEquals("Wrong match entry class", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow."\r
+ "oxm.rev130731.OpenflowBasicClass", entries.get(0).getOxmClass().getName());\r
Assert.assertEquals("Wrong match entry value", 11, \r
entries.get(0).getAugmentation(PortNumberMatchEntry.class).getPortNumber().getValue().intValue());\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight."\r
- + "openflow.common.action.rev130731.PushPbb", actions.get(14).getAction().getType().getName());\r
+ + "openflow.common.action.rev130731.PushPbb", actions.get(14).getType().getName());\r
Assert.assertEquals("Wrong action value", 10,\r
- actions.get(14).getAction().getAugmentation(EthertypeAction.class).getEthertype().getValue().intValue());\r
+ actions.get(14).getAugmentation(EthertypeAction.class).getEthertype().getValue().intValue());\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight."\r
- + "openflow.common.action.rev130731.PopPbb", actions.get(15).getAction().getType().getName());\r
+ + "openflow.common.action.rev130731.PopPbb", actions.get(15).getType().getName());\r
Assert.assertTrue("Unread data in message", message.readableBytes() == 0);\r
}\r
\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetMplsTtl;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetNwTtl;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetQueue;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsList;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsListBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.actions.list.ActionBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.ActionBuilder;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.EtherType;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.InPort;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.OpenflowBasicClass;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntries;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntriesBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntries;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntriesBuilder;\r
\r
/**\r
* @author michal.polkorab\r
*/\r
@Test\r
public void test() {\r
- List<ActionsList> actions = new ArrayList<>();\r
- ActionsListBuilder listBuilder = new ActionsListBuilder();\r
+ List<Action> actions = new ArrayList<>();\r
ActionBuilder actionBuilder = new ActionBuilder();\r
actionBuilder.setType(Output.class);\r
PortActionBuilder port = new PortActionBuilder();\r
MaxLengthActionBuilder maxLen = new MaxLengthActionBuilder();\r
maxLen.setMaxLength(52);\r
actionBuilder.addAugmentation(MaxLengthAction.class, maxLen.build());\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
+ actions.add(actionBuilder.build());\r
actionBuilder = new ActionBuilder();\r
actionBuilder.setType(CopyTtlOut.class);\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
+ actions.add(actionBuilder.build());\r
actionBuilder = new ActionBuilder();\r
actionBuilder.setType(CopyTtlIn.class);\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
+ actions.add(actionBuilder.build());\r
actionBuilder = new ActionBuilder();\r
actionBuilder.setType(SetMplsTtl.class);\r
MplsTtlActionBuilder mplsTtl = new MplsTtlActionBuilder();\r
mplsTtl.setMplsTtl((short) 4);\r
actionBuilder.addAugmentation(MplsTtlAction.class, mplsTtl.build());\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
+ actions.add(actionBuilder.build());\r
actionBuilder = new ActionBuilder();\r
actionBuilder.setType(DecMplsTtl.class);\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
+ actions.add(actionBuilder.build());\r
actionBuilder = new ActionBuilder();\r
actionBuilder.setType(PushVlan.class);\r
EthertypeActionBuilder etherType = new EthertypeActionBuilder();\r
etherType.setEthertype(new EtherType(16));\r
actionBuilder.addAugmentation(EthertypeAction.class, etherType.build());\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
+ actions.add(actionBuilder.build());\r
actionBuilder = new ActionBuilder();\r
actionBuilder.setType(PopVlan.class);\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
+ actions.add(actionBuilder.build());\r
actionBuilder = new ActionBuilder();\r
actionBuilder.setType(PushMpls.class);\r
etherType = new EthertypeActionBuilder();\r
etherType.setEthertype(new EtherType(17));\r
actionBuilder.addAugmentation(EthertypeAction.class, etherType.build());\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
+ actions.add(actionBuilder.build());\r
actionBuilder = new ActionBuilder();\r
actionBuilder.setType(PopMpls.class);\r
etherType = new EthertypeActionBuilder();\r
etherType.setEthertype(new EtherType(18));\r
actionBuilder.addAugmentation(EthertypeAction.class, etherType.build());\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
+ actions.add(actionBuilder.build());\r
actionBuilder = new ActionBuilder();\r
actionBuilder.setType(SetQueue.class);\r
QueueIdActionBuilder queueId = new QueueIdActionBuilder();\r
queueId.setQueueId(1234L);\r
actionBuilder.addAugmentation(QueueIdAction.class, queueId.build());\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
+ actions.add(actionBuilder.build());\r
actionBuilder = new ActionBuilder();\r
actionBuilder.setType(Group.class);\r
GroupIdActionBuilder group = new GroupIdActionBuilder();\r
group.setGroupId(555L);\r
actionBuilder.addAugmentation(GroupIdAction.class, group.build());\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
+ actions.add(actionBuilder.build());\r
actionBuilder = new ActionBuilder();\r
actionBuilder.setType(SetNwTtl.class);\r
NwTtlActionBuilder nwTtl = new NwTtlActionBuilder();\r
nwTtl.setNwTtl((short) 8);\r
actionBuilder.addAugmentation(NwTtlAction.class, nwTtl.build());\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
+ actions.add(actionBuilder.build());\r
actionBuilder = new ActionBuilder();\r
actionBuilder.setType(DecNwTtl.class);\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
+ actions.add(actionBuilder.build());\r
actionBuilder = new ActionBuilder();\r
actionBuilder.setType(SetField.class);\r
OxmFieldsActionBuilder matchEntries = new OxmFieldsActionBuilder();\r
entries.add(matchBuilder.build());\r
matchEntries.setMatchEntries(entries);\r
actionBuilder.addAugmentation(OxmFieldsAction.class, matchEntries.build());\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
+ actions.add(actionBuilder.build());\r
actionBuilder = new ActionBuilder();\r
actionBuilder.setType(PushPbb.class);\r
etherType = new EthertypeActionBuilder();\r
etherType.setEthertype(new EtherType(19));\r
actionBuilder.addAugmentation(EthertypeAction.class, etherType.build());\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
+ actions.add(actionBuilder.build());\r
actionBuilder = new ActionBuilder();\r
actionBuilder.setType(PopPbb.class);\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
+ actions.add(actionBuilder.build());\r
actionBuilder = new ActionBuilder();\r
actionBuilder.setType(Experimenter.class);\r
ExperimenterActionBuilder experimenter = new ExperimenterActionBuilder();\r
experimenter.setExperimenter(4L);\r
actionBuilder.addAugmentation(ExperimenterAction.class, experimenter.build());\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
+ actions.add(actionBuilder.build());\r
\r
ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();\r
ActionsSerializer.encodeActions(actions, out);\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.PortAction;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.QueueIdAction;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.TableIdInstruction;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.actions.list.Action;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.Instructions;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction;\r
\r
/**\r
* @author michal.polkorab\r
+ "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");\r
\r
message.skipBytes(4); // skip XID\r
- List<Instructions> instructions = InstructionsDeserializer.createInstructions(message, message.readableBytes());\r
- Instructions i1 = instructions.get(0);\r
+ List<Instruction> instructions = InstructionsDeserializer.createInstructions(message, message.readableBytes());\r
+ Instruction i1 = instructions.get(0);\r
Assert.assertEquals("Wrong type - i1", "org.opendaylight.yang.gen.v1.urn."\r
+ "opendaylight.openflow.common.instruction.rev130731.GotoTable", i1.getType().getName());\r
Assert.assertEquals("Wrong table-id - i1", 10, i1.getAugmentation(TableIdInstruction.class).getTableId().intValue());\r
- Instructions i2 = instructions.get(1);\r
+ Instruction i2 = instructions.get(1);\r
Assert.assertEquals("Wrong type - i2", "org.opendaylight.yang.gen.v1.urn."\r
+ "opendaylight.openflow.common.instruction.rev130731.WriteMetadata", i2.getType().getName());\r
Assert.assertArrayEquals("Wrong metadata - i2", ByteBufUtils.hexStringToBytes("00 00 00 00 00 00 00 20"),\r
i2.getAugmentation(MetadataInstruction.class).getMetadata());\r
Assert.assertArrayEquals("Wrong metadata-mask - i2", ByteBufUtils.hexStringToBytes("00 00 00 00 00 00 00 30"),\r
i2.getAugmentation(MetadataInstruction.class).getMetadataMask());\r
- Instructions i3 = instructions.get(2);\r
+ Instruction i3 = instructions.get(2);\r
Assert.assertEquals("Wrong type - i3", "org.opendaylight.yang.gen.v1.urn."\r
+ "opendaylight.openflow.common.instruction.rev130731.ClearActions", i3.getType().getName());\r
- Assert.assertEquals("Wrong instructions - i3", 0, i3.getAugmentation(ActionsInstruction.class).getActionsList().size());\r
- Instructions i4 = instructions.get(3);\r
+ Assert.assertEquals("Wrong instructions - i3", 0, i3.getAugmentation(ActionsInstruction.class).getAction().size());\r
+ Instruction i4 = instructions.get(3);\r
Assert.assertEquals("Wrong type - i4", "org.opendaylight.yang.gen.v1.urn."\r
+ "opendaylight.openflow.common.instruction.rev130731.Meter", i4.getType().getName());\r
Assert.assertEquals("Wrong meterId - i4", 66051, i4.getAugmentation(MeterIdInstruction.class).getMeterId().intValue());\r
- Instructions i5 = instructions.get(4);\r
+ Instruction i5 = instructions.get(4);\r
Assert.assertEquals("Wrong type - i5", "org.opendaylight.yang.gen.v1.urn."\r
+ "opendaylight.openflow.common.instruction.rev130731.WriteActions", i5.getType().getName());\r
- Assert.assertEquals("Wrong instructions - i5", 2, i5.getAugmentation(ActionsInstruction.class).getActionsList().size());\r
- Action action1 = i5.getAugmentation(ActionsInstruction.class).getActionsList().get(0).getAction();\r
+ Assert.assertEquals("Wrong instructions - i5", 2, i5.getAugmentation(ActionsInstruction.class).getAction().size());\r
+ Action action1 = i5.getAugmentation(ActionsInstruction.class).getAction().get(0);\r
Assert.assertEquals("Wrong action", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.Output",\r
action1.getType().getName());\r
Assert.assertEquals("Wrong action", 37, action1.getAugmentation(PortAction.class).getPort().getValue().intValue());\r
Assert.assertEquals("Wrong action", 53, action1.getAugmentation(MaxLengthAction.class).getMaxLength().intValue());\r
- Action action2 = i5.getAugmentation(ActionsInstruction.class).getActionsList().get(1).getAction();\r
+ Action action2 = i5.getAugmentation(ActionsInstruction.class).getAction().get(1);\r
Assert.assertEquals("Wrong action", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.Group",\r
action2.getType().getName());\r
Assert.assertEquals("Wrong action", 80, action2.getAugmentation(GroupIdAction.class).getGroupId().intValue());\r
- Instructions i6 = instructions.get(5);\r
+ Instruction i6 = instructions.get(5);\r
Assert.assertEquals("Wrong type - i6", "org.opendaylight.yang.gen.v1.urn."\r
+ "opendaylight.openflow.common.instruction.rev130731.ApplyActions", i6.getType().getName());\r
- Assert.assertEquals("Wrong instructions - i6", 2, i6.getAugmentation(ActionsInstruction.class).getActionsList().size());\r
- action1 = i6.getAugmentation(ActionsInstruction.class).getActionsList().get(0).getAction();\r
+ Assert.assertEquals("Wrong instructions - i6", 2, i6.getAugmentation(ActionsInstruction.class).getAction().size());\r
+ action1 = i6.getAugmentation(ActionsInstruction.class).getAction().get(0);\r
Assert.assertEquals("Wrong action", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetQueue",\r
action1.getType().getName());\r
Assert.assertEquals("Wrong action", 37, action1.getAugmentation(QueueIdAction.class).getQueueId().intValue());\r
- action2 = i6.getAugmentation(ActionsInstruction.class).getActionsList().get(1).getAction();\r
+ action2 = i6.getAugmentation(ActionsInstruction.class).getAction().get(1);\r
Assert.assertEquals("Wrong action", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetMplsTtl",\r
action2.getType().getName());\r
Assert.assertEquals("Wrong action", 5, action2.getAugmentation(MplsTtlAction.class).getMplsTtl().intValue());\r
import java.util.ArrayList;\r
import java.util.List;\r
\r
-\r
-\r
-\r
import org.junit.Assert;\r
import org.junit.Test;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.ActionsInstruction;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.PopPbb;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.PushVlan;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetNwTtl;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsList;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsListBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.actions.list.ActionBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.ActionBuilder;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.ApplyActions;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.ClearActions;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.GotoTable;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.Meter;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteActions;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteMetadata;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.Instructions;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.InstructionsBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.InstructionBuilder;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.EtherType;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber;\r
\r
*/\r
@Test\r
public void test() {\r
- List<Instructions> instructions = new ArrayList<>();\r
+ List<Instruction> instructions = new ArrayList<>();\r
// Goto_table instruction\r
- InstructionsBuilder builder = new InstructionsBuilder();\r
+ InstructionBuilder builder = new InstructionBuilder();\r
builder.setType(GotoTable.class);\r
TableIdInstructionBuilder tableIdBuilder = new TableIdInstructionBuilder();\r
tableIdBuilder.setTableId((short) 5);\r
builder.addAugmentation(TableIdInstruction.class, tableIdBuilder.build());\r
instructions.add(builder.build());\r
- builder = new InstructionsBuilder();\r
+ builder = new InstructionBuilder();\r
// Write_metadata instruction\r
builder.setType(WriteMetadata.class);\r
MetadataInstructionBuilder metaBuilder = new MetadataInstructionBuilder();\r
builder.addAugmentation(MetadataInstruction.class, metaBuilder.build());\r
instructions.add(builder.build());\r
// Clear_actions instruction\r
- builder = new InstructionsBuilder();\r
+ builder = new InstructionBuilder();\r
builder.setType(ClearActions.class);\r
instructions.add(builder.build());\r
// Meter instruction\r
- builder = new InstructionsBuilder();\r
+ builder = new InstructionBuilder();\r
builder.setType(Meter.class);\r
MeterIdInstructionBuilder meterBuilder = new MeterIdInstructionBuilder();\r
meterBuilder.setMeterId(42L);\r
builder.addAugmentation(MeterIdInstruction.class, meterBuilder.build());\r
instructions.add(builder.build());\r
// Write_actions instruction\r
- builder = new InstructionsBuilder();\r
+ builder = new InstructionBuilder();\r
builder.setType(WriteActions.class);\r
ActionsInstructionBuilder actionsBuilder = new ActionsInstructionBuilder();\r
- List<ActionsList> actions = new ArrayList<>();\r
- ActionsListBuilder listBuilder = new ActionsListBuilder();\r
- ActionBuilder actBuilder = new ActionBuilder();\r
- actBuilder.setType(Output.class);\r
+ List<Action> actions = new ArrayList<>();\r
+ ActionBuilder actionBuilder = new ActionBuilder();\r
+ actionBuilder.setType(Output.class);\r
PortActionBuilder portBuilder = new PortActionBuilder();\r
portBuilder.setPort(new PortNumber(45L));\r
- actBuilder.addAugmentation(PortAction.class, portBuilder.build());\r
+ actionBuilder.addAugmentation(PortAction.class, portBuilder.build());\r
MaxLengthActionBuilder maxBuilder = new MaxLengthActionBuilder();\r
maxBuilder.setMaxLength(55);\r
- actBuilder.addAugmentation(MaxLengthAction.class, maxBuilder.build());\r
- listBuilder.setAction(actBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
- actBuilder = new ActionBuilder();\r
- actBuilder.setType(SetNwTtl.class);\r
+ actionBuilder.addAugmentation(MaxLengthAction.class, maxBuilder.build());\r
+ actions.add(actionBuilder.build());\r
+ actionBuilder = new ActionBuilder();\r
+ actionBuilder.setType(SetNwTtl.class);\r
NwTtlActionBuilder nwTtl = new NwTtlActionBuilder();\r
nwTtl.setNwTtl((short) 64);\r
- actBuilder.addAugmentation(NwTtlAction.class, nwTtl.build());\r
- listBuilder.setAction(actBuilder.build());\r
- actions.add(listBuilder.build());\r
- actionsBuilder.setActionsList(actions);\r
+ actionBuilder.addAugmentation(NwTtlAction.class, nwTtl.build());\r
+ actions.add(actionBuilder.build());\r
+ actionsBuilder.setAction(actions);\r
builder.addAugmentation(ActionsInstruction.class, actionsBuilder.build());\r
instructions.add(builder.build());\r
// Apply_actions instruction\r
- builder = new InstructionsBuilder();\r
+ builder = new InstructionBuilder();\r
builder.setType(ApplyActions.class);\r
actionsBuilder = new ActionsInstructionBuilder();\r
actions = new ArrayList<>();\r
- listBuilder = new ActionsListBuilder();\r
- actBuilder = new ActionBuilder();\r
- actBuilder.setType(PushVlan.class);\r
+ actionBuilder = new ActionBuilder();\r
+ actionBuilder.setType(PushVlan.class);\r
EthertypeActionBuilder ethertypeBuilder = new EthertypeActionBuilder();\r
ethertypeBuilder.setEthertype(new EtherType(14));\r
- actBuilder.addAugmentation(EthertypeAction.class, ethertypeBuilder.build());\r
- listBuilder.setAction(actBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
- actBuilder = new ActionBuilder();\r
- actBuilder.setType(PopPbb.class);\r
- listBuilder.setAction(actBuilder.build());\r
- actions.add(listBuilder.build());\r
- actionsBuilder.setActionsList(actions);\r
+ actionBuilder.addAugmentation(EthertypeAction.class, ethertypeBuilder.build());\r
+ actions.add(actionBuilder.build());\r
+ actionBuilder = new ActionBuilder();\r
+ actionBuilder.setType(PopPbb.class);\r
+ actions.add(actionBuilder.build());\r
+ actionsBuilder.setAction(actions);\r
builder.addAugmentation(ActionsInstruction.class, actionsBuilder.build());\r
instructions.add(builder.build());\r
\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.UdpSrc;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.VlanPcp;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.VlanVid;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntries;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.match.grouping.Match;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.match.grouping.Match;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntries;\r
\r
/**\r
* @author michal.polkorab\r
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;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.UdpSrc;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.VlanPcp;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.VlanVid;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntries;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntriesBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.match.grouping.Match;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.match.grouping.MatchBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.match.grouping.Match;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.match.grouping.MatchBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntries;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntriesBuilder;\r
\r
/**\r
* @author michal.polkorab\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.QueueIdAction;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.VlanPcpAction;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.VlanVidAction;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsList;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.actions.list.Action;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action;\r
\r
/**\r
* @author michal.polkorab\r
+ "FF FF 00 08 00 00 12 34");\r
\r
message.skipBytes(4); // skip XID\r
- List<ActionsList> actions = OF10ActionsDeserializer.createActionsList(message);\r
+ List<Action> actions = OF10ActionsDeserializer.createActionsList(message);\r
Assert.assertEquals("Wrong number of actions", 13, actions.size());\r
- Action action1 = actions.get(0).getAction();\r
+ Action action1 = actions.get(0);\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight"\r
+ ".openflow.common.action.rev130731.Output", action1.getType().getName());\r
Assert.assertEquals("Wrong port", 16,\r
action1.getAugmentation(PortAction.class).getPort().getValue().intValue());\r
Assert.assertEquals("Wrong max-length", 8192,\r
action1.getAugmentation(MaxLengthAction.class).getMaxLength().intValue());\r
- Action action2 = actions.get(1).getAction();\r
+ Action action2 = actions.get(1);\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight"\r
+ ".openflow.common.action.rev130731.SetVlanVid", action2.getType().getName());\r
Assert.assertEquals("Wrong vlan-vid", 4112,\r
action2.getAugmentation(VlanVidAction.class).getVlanVid().intValue());\r
- Action action3 = actions.get(2).getAction();\r
+ Action action3 = actions.get(2);\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight"\r
+ ".openflow.common.action.rev130731.SetVlanPcp", action3.getType().getName());\r
Assert.assertEquals("Wrong vlan-pcp", 37,\r
action3.getAugmentation(VlanPcpAction.class).getVlanPcp().intValue());\r
- Action action4 = actions.get(3).getAction();\r
+ Action action4 = actions.get(3);\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight"\r
+ ".openflow.common.action.rev130731.StripVlan", action4.getType().getName());\r
- Action action5 = actions.get(4).getAction();\r
+ Action action5 = actions.get(4);\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight"\r
+ ".openflow.common.action.rev130731.SetDlSrc", action5.getType().getName());\r
Assert.assertArrayEquals("Wrong dl-src", ByteBufUtils.macAddressToBytes("01:02:03:04:05:06"), \r
ByteBufUtils.macAddressToBytes(action5.getAugmentation(DlAddressAction.class).getDlAddress().getValue()));\r
- Action action6 = actions.get(5).getAction();\r
+ Action action6 = actions.get(5);\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight"\r
+ ".openflow.common.action.rev130731.SetDlDst", action6.getType().getName());\r
Assert.assertArrayEquals("Wrong dl-dst", ByteBufUtils.macAddressToBytes("02:03:04:05:06:07"), \r
ByteBufUtils.macAddressToBytes(action6.getAugmentation(DlAddressAction.class).getDlAddress().getValue()));\r
- Action action7 = actions.get(6).getAction();\r
+ Action action7 = actions.get(6);\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight"\r
+ ".openflow.common.action.rev130731.SetNwSrc", action7.getType().getName());\r
Assert.assertEquals("Wrong nw-src", new Ipv4Address("10.0.0.1"),\r
action7.getAugmentation(IpAddressAction.class).getIpAddress());\r
- Action action8 = actions.get(7).getAction();\r
+ Action action8 = actions.get(7);\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight"\r
+ ".openflow.common.action.rev130731.SetNwDst", action8.getType().getName());\r
Assert.assertEquals("Wrong nw-dst", new Ipv4Address("11.0.0.2"),\r
action8.getAugmentation(IpAddressAction.class).getIpAddress());\r
- Action action9 = actions.get(8).getAction();\r
+ Action action9 = actions.get(8);\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight"\r
+ ".openflow.common.action.rev130731.SetNwTos", action9.getType().getName());\r
Assert.assertEquals("Wrong nw-tos", 1, action9.getAugmentation(NwTosAction.class).getNwTos().intValue());\r
- Action action10 = actions.get(9).getAction();\r
+ Action action10 = actions.get(9);\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight"\r
+ ".openflow.common.action.rev130731.SetTpSrc", action10.getType().getName());\r
Assert.assertEquals("Wrong port", 2, action10.getAugmentation(PortAction.class)\r
.getPort().getValue().intValue());\r
- Action action11 = actions.get(10).getAction();\r
+ Action action11 = actions.get(10);\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight"\r
+ ".openflow.common.action.rev130731.SetTpDst", action11.getType().getName());\r
Assert.assertEquals("Wrong port", 3, action11.getAugmentation(PortAction.class)\r
.getPort().getValue().intValue());\r
- Action action12 = actions.get(11).getAction();\r
+ Action action12 = actions.get(11);\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight"\r
+ ".openflow.common.action.rev130731.Enqueue", action12.getType().getName());\r
Assert.assertEquals("Wrong port", 4, action12.getAugmentation(PortAction.class)\r
.getPort().getValue().intValue());\r
Assert.assertEquals("Wrong queue-id", 48,\r
action12.getAugmentation(QueueIdAction.class).getQueueId().intValue());\r
- Action action13 = actions.get(12).getAction();\r
+ Action action13 = actions.get(12);\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight"\r
+ ".openflow.common.action.rev130731.Experimenter", action13.getType().getName());\r
Assert.assertEquals("Wrong port", 4660, action13.getAugmentation(ExperimenterAction.class)\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetVlanPcp;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetVlanVid;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.StripVlan;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsList;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsListBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.actions.list.ActionBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.ActionBuilder;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber;\r
\r
/**\r
*/\r
@Test\r
public void test() {\r
- List<ActionsList> actions = new ArrayList<>();\r
- ActionsListBuilder listBuilder = new ActionsListBuilder();\r
+ List<Action> actions = new ArrayList<>();\r
ActionBuilder actionBuilder = new ActionBuilder();\r
actionBuilder.setType(Output.class);\r
PortActionBuilder portBuilder = new PortActionBuilder();\r
MaxLengthActionBuilder maxLen = new MaxLengthActionBuilder();\r
maxLen.setMaxLength(32);\r
actionBuilder.addAugmentation(MaxLengthAction.class, maxLen.build());\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
+ actions.add(actionBuilder.build());\r
actionBuilder = new ActionBuilder();\r
actionBuilder.setType(SetVlanVid.class);\r
VlanVidActionBuilder vlanBuilder = new VlanVidActionBuilder();\r
vlanBuilder.setVlanVid(15);\r
actionBuilder.addAugmentation(VlanVidAction.class, vlanBuilder.build());\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
+ actions.add(actionBuilder.build());\r
actionBuilder = new ActionBuilder();\r
actionBuilder.setType(SetVlanPcp.class);\r
VlanPcpActionBuilder pcpBuilder = new VlanPcpActionBuilder();\r
pcpBuilder.setVlanPcp((short) 16);\r
actionBuilder.addAugmentation(VlanPcpAction.class, pcpBuilder.build());\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
+ actions.add(actionBuilder.build());\r
actionBuilder = new ActionBuilder();\r
actionBuilder.setType(StripVlan.class);\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
+ actions.add(actionBuilder.build());\r
actionBuilder = new ActionBuilder();\r
actionBuilder.setType(SetDlSrc.class);\r
DlAddressActionBuilder dlBuilder = new DlAddressActionBuilder();\r
dlBuilder.setDlAddress(new MacAddress("00:00:00:02:03:04"));\r
actionBuilder.addAugmentation(DlAddressAction.class, dlBuilder.build());\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
+ actions.add(actionBuilder.build());\r
actionBuilder = new ActionBuilder();\r
actionBuilder.setType(SetDlDst.class);\r
dlBuilder = new DlAddressActionBuilder();\r
dlBuilder.setDlAddress(new MacAddress("00:00:00:01:02:03"));\r
actionBuilder.addAugmentation(DlAddressAction.class, dlBuilder.build());\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
+ actions.add(actionBuilder.build());\r
actionBuilder = new ActionBuilder();\r
actionBuilder.setType(SetNwSrc.class);\r
IpAddressActionBuilder ipBuilder = new IpAddressActionBuilder();\r
ipBuilder.setIpAddress(new Ipv4Address("10.0.0.1"));\r
actionBuilder.addAugmentation(IpAddressAction.class, ipBuilder.build());\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
+ actions.add(actionBuilder.build());\r
actionBuilder = new ActionBuilder();\r
actionBuilder.setType(SetNwDst.class);\r
ipBuilder = new IpAddressActionBuilder();\r
ipBuilder.setIpAddress(new Ipv4Address("10.0.0.3"));\r
actionBuilder.addAugmentation(IpAddressAction.class, ipBuilder.build());\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
+ actions.add(actionBuilder.build());\r
actionBuilder = new ActionBuilder();\r
actionBuilder.setType(SetNwTos.class);\r
NwTosActionBuilder tosBuilder = new NwTosActionBuilder();\r
tosBuilder.setNwTos((short) 204);\r
actionBuilder.addAugmentation(NwTosAction.class, tosBuilder.build());\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
+ actions.add(actionBuilder.build());\r
actionBuilder = new ActionBuilder();\r
actionBuilder.setType(SetTpSrc.class);\r
portBuilder = new PortActionBuilder();\r
portBuilder.setPort(new PortNumber(6653L));\r
actionBuilder.addAugmentation(PortAction.class, portBuilder.build());\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
+ actions.add(actionBuilder.build());\r
actionBuilder = new ActionBuilder();\r
actionBuilder.setType(SetTpDst.class);\r
portBuilder = new PortActionBuilder();\r
portBuilder.setPort(new PortNumber(6633L));\r
actionBuilder.addAugmentation(PortAction.class, portBuilder.build());\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
+ actions.add(actionBuilder.build());\r
actionBuilder = new ActionBuilder();\r
actionBuilder.setType(Enqueue.class);\r
portBuilder = new PortActionBuilder();\r
QueueIdActionBuilder queueBuilder = new QueueIdActionBuilder();\r
queueBuilder.setQueueId(400L);\r
actionBuilder.addAugmentation(QueueIdAction.class, queueBuilder.build());\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
- listBuilder = new ActionsListBuilder();\r
+ actions.add(actionBuilder.build());\r
actionBuilder = new ActionBuilder();\r
actionBuilder.setType(Experimenter.class);\r
ExperimenterActionBuilder expBuilder = new ExperimenterActionBuilder();\r
expBuilder.setExperimenter(500L);\r
actionBuilder.addAugmentation(ExperimenterAction.class, expBuilder.build());\r
- listBuilder.setAction(actionBuilder.build());\r
- actions.add(listBuilder.build());\r
+ actions.add(actionBuilder.build());\r
\r
ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();\r
OF10ActionsSerializer.encodeActionsV10(out, actions);\r