Action convertor imports updated.
PortConvertor removed unwanted code,port_mod api takes input as list .
Signed-off-by: usha <usha.m.s@ericsson.com>
import org.opendaylight.controller.sal.core.NodeConnector.NodeConnectorIDType;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Uri;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.CopyTtlIn;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.CopyTtlOut;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.DecMplsTtl;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.GroupAction;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.OutputAction;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PopMplsAction;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PushMplsAction;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PushPbbAction;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PushVlanAction;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetField;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetMplsTtlAction;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetNwTtlAction;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetQueueAction;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.PortActionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.QueueIdAction;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.QueueIdActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.CopyTtlIn;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.CopyTtlOut;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.DecMplsTtl;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.DecNwTtl;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.Experimenter;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.Group;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.PushMpls;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.PushPbb;
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.SetField;
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;
for (int actionItem = 0; actionItem < actions.size(); actionItem++)
{
- Action action = actions.get(
+
+ org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action action = actions.get(
actionItem).getAction();
if (action instanceof OutputAction)
}
- private static ActionsList SalToOFSetField(Action action, ActionBuilder actionBuilder,
+ private static ActionsList SalToOFSetField(
+ org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action action,
+ ActionBuilder actionBuilder,
ActionsListBuilder actionsListBuilder) {
- org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.Match match = ((SetField) action)
- .getMatch();
+ org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetField setField = (org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetField) action;
+ org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.Match match = setField.getMatch();
List<MatchEntries> matchEntries = FlowConvertor.toMatch(match);
}
- private static ActionsList SalToOFDecNwTtl(Action action, ActionBuilder actionBuilder,
+ private static ActionsList SalToOFDecNwTtl(
+ org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action action,
+ ActionBuilder actionBuilder,
ActionsListBuilder actionsListBuilder) {
actionBuilder.setType(DecNwTtl.class);
}
private static ActionsList SalToOFPushMplsAction(
-Action action, ActionBuilder actionBuilder,
+ org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action action,
+ ActionBuilder actionBuilder,
ActionsListBuilder actionsListBuilder) {
actionBuilder.setType(PushMpls.class);
}
private static ActionsList SalToOFPushPbbAction(
-Action action, ActionBuilder actionBuilder,
+ org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action action,
+ ActionBuilder actionBuilder,
ActionsListBuilder actionsListBuilder) {
actionBuilder.setType(PushPbb.class);
}
private static ActionsList SalToOFPushVlanAction(
-Action action, ActionBuilder actionBuilder,
+ org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action action,
+ ActionBuilder actionBuilder,
ActionsListBuilder actionsListBuilder) {
PushVlanAction pushVlanAction = (PushVlanAction) action;
}
private static ActionsList SalToOFSetNwTtl(
-Action action, ActionBuilder actionBuilder,
+ org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action action,
+ ActionBuilder actionBuilder,
ActionsListBuilder actionsListBuilder) {
NwTtlActionBuilder nwTtlActionBuilder = new NwTtlActionBuilder();
}
private static ActionsList SalToOFSetQueue(
-Action action, ActionBuilder actionBuilder,
+ org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action action,
+ ActionBuilder actionBuilder,
ActionsListBuilder actionsListBuilder) {
SetQueueAction setQueueAction = (SetQueueAction) action;
}
private static ActionsList SalToOFPopMpls(
-Action action, ActionBuilder actionBuilder,
+ org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action action,
+ ActionBuilder actionBuilder,
ActionsListBuilder actionsListBuilder) {
actionBuilder.setType(PopMpls.class);
}
private static ActionsList SalToOFPopVlan(
-Action action, ActionBuilder actionBuilder,
+ org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action action,
+ ActionBuilder actionBuilder,
ActionsListBuilder actionsListBuilder) {
actionBuilder.setType(PushMpls.class);
return emtpyAction(actionBuilder, actionsListBuilder);
}
- private static ActionsList SalToOFPopPBB(Action action, ActionBuilder actionBuilder,
+ private static ActionsList SalToOFPopPBB(
+ org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action action,
+ ActionBuilder actionBuilder,
ActionsListBuilder actionsListBuilder) {
actionBuilder.setType(PopPbb.class);
return emtpyAction(actionBuilder, actionsListBuilder);
}
private static ActionsList SalToOFExperimenter(
-Action action, ActionBuilder actionBuilder,
+ org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action action,
+ ActionBuilder actionBuilder,
ActionsListBuilder actionsListBuilder) {
ExperimenterActionBuilder experimenterActionBuilder = new ExperimenterActionBuilder();
}
private static ActionsList SalToOFGroupAction(
-Action action, ActionBuilder actionBuilder,
+ org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action action,
+ ActionBuilder actionBuilder,
ActionsListBuilder actionsListBuilder) {
GroupAction groupAction = (GroupAction) action;
}
private static ActionsList SalToOFSetMplsTtl(
-Action action, ActionBuilder actionBuilder,
+ org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action action,
+ ActionBuilder actionBuilder,
ActionsListBuilder actionsListBuilder) {
SetMplsTtlAction mplsTtlAction = (SetMplsTtlAction) action;
return actionsListBuilder.build();
}
- private static ActionsList salToOFOutputAction(Action action, ActionBuilder actionBuilder,
+ private static ActionsList salToOFOutputAction(
+ org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action action,
+ ActionBuilder actionBuilder,
ActionsListBuilder actionsListBuilder) {
}
if (uri.getValue() == NodeConnectorIDType.CONTROLLER) {
- // TODO:Check with michael
- // portAction.setPort(new PortNumber((long)
- // OFPort.OFPP_CONTROLLER.getValue()));
- // FIXME: these constants are different among protocols, we need to know target
- // version and we need to create enums for all (2) protocols (prefferably
- // yang generated) and we definitely need to remove the old stuff
- }
+
+ // portAction.setPort(new PortNumber((long)
+ // OFPort.OFPP_CONTROLLER.getValue()));
+
+ }
actionBuilder
.setType(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.Output.class);
package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor;
+import java.util.List;
+
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.port.mod.port.Port;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortConfig;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortFeatures;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortReason;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortState;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortModInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortModInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortStatus;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortStatusMessageBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.port.desc.Ports;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.port.desc.PortsBuilder;
import org.slf4j.Logger;
* @param source
* @return
*/
+
public static PortModInput toPortModInput(
- org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.port.mod.port.Port source) {
+ org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.PortMod input) {
+
+ List<Port> source = input.getPort().getPort();
PortConfig config = null;
PortModInputBuilder portModInputBuilder = new PortModInputBuilder();
- portModInputBuilder.setAdvertise(getPortFeatures(source.getAdvertisedFeatures()));
- portModInputBuilder.setPortNo(new PortNumber(source.getPortNumber()));
- maskPortConfigFields(source.getConfiguration(), config);
+ portModInputBuilder.setAdvertise(getPortFeatures(source.get(0).getAdvertisedFeatures()));
+ portModInputBuilder.setPortNo(new PortNumber(source.get(0).getPortNumber()));
+ maskPortConfigFields(source.get(0).getConfiguration(), config);
portModInputBuilder.setConfig(config);
- portModInputBuilder.setHwAddress(new MacAddress(source.getHardwareAddress()));
+ portModInputBuilder.setHwAddress(new MacAddress(source.get(0).getHardwareAddress()));
config = null;
- maskPortConfigFields(source.getMask(), config);
+ maskPortConfigFields(source.get(0).getMask(), config);
portModInputBuilder.setMask(config);
return portModInputBuilder.build();
}
- /**
- * This method is used called when the ports are added, modi ed, and removed
- * from the datapath, the controller needs to be informed with the
- * OFPT_PORT_STATUS message
- *
- * @param source
- * :SAL Layer input from say REST API
- * @return OF Layer data required for constructing the OFPT_PORT_STATUS
- * message
- */
- public static PortStatus toGetPortStatus(
- org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.FlowPortStatus source) {
-
- PortConfig config = null;
- PortState portState = null;
-
- PortStatusMessageBuilder portStatusMessageBuilder = new PortStatusMessageBuilder();
- if (source.getReason().getIntValue() == 0)
- portStatusMessageBuilder.setReason(PortReason.OFPPRADD);
-
- else if (source.getReason().getIntValue() == 1)
- portStatusMessageBuilder.setReason(PortReason.OFPPRDELETE);
-
- else if (source.getReason().getIntValue() == 2)
- portStatusMessageBuilder.setReason(PortReason.OFPPRMODIFY);
-
- portStatusMessageBuilder.setPortNo(source.getPortNumber()); // portNO
-
- portStatusMessageBuilder.setHwAddr(source.getHardwareAddress());
- portStatusMessageBuilder.setName(source.getName());
-
- maskPortConfigFields(source.getConfiguration(), config);
-
- portStatusMessageBuilder.setConfig(config);
-
- getPortState(source.getState(), portState);
- portStatusMessageBuilder.setState(portState);
- portStatusMessageBuilder.setCurrentFeatures(getPortFeatures(source.getCurrentFeature()));
- portStatusMessageBuilder.setAdvertisedFeatures(getPortFeatures(source.getAdvertisedFeatures()));
- portStatusMessageBuilder.setSupportedFeatures(getPortFeatures(source.getSupported()));
- portStatusMessageBuilder.setPeerFeatures(getPortFeatures(source.getPeerFeatures()));
- portStatusMessageBuilder.setCurrSpeed(source.getCurrentSpeed());
- portStatusMessageBuilder.setMaxSpeed(source.getMaximumSpeed());
-
- return portStatusMessageBuilder.build();
-
- }
}
--- /dev/null
+package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+import org.opendaylight.controller.sal.action.PopVlan;
+import org.opendaylight.controller.sal.core.NodeConnector.NodeConnectorIDType;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Uri;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.CopyTtlInBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.CopyTtlOutBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.DecMplsTtlBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.DecNwTtlBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.GroupActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PopMplsActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PopPbbActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PopVlanActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PushMplsActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PushPbbActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PushVlanActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetFieldBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetMplsTtlActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetNwTtlActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetQueueActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.field.MatchBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.VlanId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.EthertypeAction;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.GroupIdAction;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.MaxLengthAction;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.OxmFieldsAction;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.PortNumberMatchEntry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.CopyTtlIn;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.CopyTtlOut;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.DecNwTtl;
+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.PopMpls;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.PushMpls;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.PushPbb;
+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.SetField;
+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.oxm.rev130731.InPort;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.OpenflowBasicClass;
+
+public class ActionConvertorTest {
+
+ List<Action> actions = new ArrayList<Action>();
+ static Integer actionItem = 0;
+
+ @Test
+ public void testActionConvertorwithallParameters() {
+ OutputActionData();
+ CopyTtlData();
+ MplsTtlActionData();
+ vlanActionData();
+ mplsActionData();
+ setQueueActionData();
+ setGroupAction();
+ NwTtlAction();
+ pbbActionData();
+ setFieldData();
+ setExperimenterData();
+ List<ActionsList> OFActionsList = ActionConvertor.getActionList(actions);
+
+ OutputActions(OFActionsList);
+
+ }
+
+ private void setExperimenterData() {
+
+ // TODO:SAL API Missing
+
+ }
+
+ private void setFieldData() {
+
+ SetFieldBuilder setFA = new SetFieldBuilder();
+
+ MatchBuilder matchBuilder = new MatchBuilder();
+
+ matchBuilder.setInPort(2125L);
+
+ SetFieldBuilder setFB = new SetFieldBuilder();
+ setFB.setMatch(matchBuilder.build());
+
+ ActionBuilder AB = new ActionBuilder();
+ AB.setAction(setFB.build());
+
+ actions.add(actionItem++, AB.build());
+
+ }
+
+ private void pbbActionData() {
+ PushPbbActionBuilder pushpbb = new PushPbbActionBuilder();
+ pushpbb.setEthernetType(10);
+
+ ActionBuilder AB = new ActionBuilder();
+ AB.setAction(pushpbb.build());
+
+ actions.add(actionItem++, AB.build());
+
+ PopPbbActionBuilder popPBB = new PopPbbActionBuilder();
+
+ ActionBuilder AB1 = new ActionBuilder();
+ AB1.setAction(popPBB.build());
+
+ actions.add(actionItem++, AB1.build());
+
+ }
+
+ private void NwTtlAction() {
+ SetNwTtlActionBuilder setNwTtlActionBuilder = new SetNwTtlActionBuilder();
+
+ setNwTtlActionBuilder.setNwTtl((short) 1);
+ ActionBuilder AB = new ActionBuilder();
+ AB.setAction(setNwTtlActionBuilder.build());
+
+ actions.add(actionItem++, AB.build());
+
+ DecNwTtlBuilder necNwTtlBuilder = new DecNwTtlBuilder();
+
+
+ ActionBuilder AB1 = new ActionBuilder();
+ AB1.setAction(necNwTtlBuilder.build());
+
+ actions.add(actionItem++, AB1.build());
+
+ }
+
+ private void setGroupAction() {
+
+ GroupActionBuilder grpIdAB = new GroupActionBuilder();
+ grpIdAB.setGroup("98");
+
+ ActionBuilder AB = new ActionBuilder();
+ AB.setAction(grpIdAB.build());
+
+ actions.add(actionItem++, AB.build());
+
+ }
+
+ private void OutputActions(List<ActionsList> oFActionsList) {
+
+ for (int item = 0; item < oFActionsList.size(); item++) {
+
+ org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.actions.list.Action action = oFActionsList
+ .get(item).getAction();
+
+ if (action.getType().equals(Output.class)) {
+ Assert.assertEquals((Integer) 10, (action.getAugmentation(MaxLengthAction.class)).getMaxLength());
+ // TOD0: OF needs to changed,once that is done ,revalidation of
+ // the data required.
+ // Assert.assertEquals(-3, (long)
+ // (action.getAugmentation(PortAction.class)).getPort().getValue());
+ // // short
+
+ }
+ if (action.getType().equals(CopyTtlIn.class)) {
+ Assert.assertEquals(action.getType(), CopyTtlIn.class);
+
+ }
+ if (action.getType().equals(CopyTtlOut.class)) {
+
+ Assert.assertEquals(action.getType(),
+ org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.CopyTtlOut.class);
+
+ }
+
+ if (action.getType().equals(
+ // TODO:getMplsTtl is missing.
+ SetMplsTtl.class)) {
+ Assert.assertEquals(action.getType(), SetMplsTtl.class);
+
+ }
+ if (action.getType().equals(
+ org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.DecMplsTtl.class)) {
+ Assert.assertEquals(action.getType(),
+ org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.DecMplsTtl.class);
+
+ }
+
+ if (action.getType().equals(PushMpls.class)) {
+
+ EthertypeAction etherTypeAction = action
+ .getAugmentation(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.EthertypeAction.class);
+
+ if (etherTypeAction != null) {
+
+
+ Assert.assertEquals((Integer) 10, etherTypeAction.getEthertype().getValue());
+ }
+ }
+
+ if (action.getType().equals(PopMpls.class)) {
+ Assert.assertEquals((Integer) 10, (action.getAugmentation(EthertypeAction.class)).getEthertype()
+ .getValue());
+
+ }
+
+ if (action.getType().equals(
+
+ // TODO:SetQueue,I dont have getQueueId
+ SetQueue.class)) {
+ Assert.assertEquals(action.getType(), SetQueue.class);
+ }
+
+ if (action.getType().equals(
+
+ GroupIdAction.class)) {
+
+ Assert.assertEquals(98, (long) (action.getAugmentation(GroupIdAction.class)).getGroupId());
+
+ }
+
+ if (action.getType().equals(
+
+ PushVlan.class)) {
+
+ Assert.assertEquals(action.getType(), PushVlan.class);
+
+ }
+ if (action.getType().equals(
+
+ PopVlan.class)) {
+
+ Assert.assertEquals(action.getType(), PopVlan.class);
+
+ }
+
+ if (action.getType().equals(
+
+ SetNwTtl.class)) {
+
+ Assert.assertEquals(action.getType(), SetNwTtl.class);
+
+ }
+ if (action.getType().equals(
+
+ DecNwTtl.class)) {
+
+ Assert.assertEquals(action.getType(), SetNwTtl.class);
+
+ }
+ if (action.getType().equals(PushPbb.class)) {
+
+ EthertypeAction etherTypeAction = action
+ .getAugmentation(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.EthertypeAction.class);
+
+ if (etherTypeAction != null) {
+
+ Assert.assertEquals((Integer) 10, etherTypeAction.getEthertype().getValue());
+ }
+ }
+
+ if (action.getType().equals(PopMpls.class)) {
+ Assert.assertEquals(action.getType(), PopMpls.class);
+
+ }
+
+ if (action.getType().equals(SetField.class)) {
+
+ OxmFieldsAction sf = action.getAugmentation(OxmFieldsAction.class);
+
+ Assert.assertEquals(OpenflowBasicClass.class, sf.getMatchEntries().get(0).getOxmClass());
+
+ if (sf.getMatchEntries().get(0).getOxmMatchField().equals(InPort.class)) {
+ Assert.assertEquals(2125, sf.getMatchEntries().get(0).getAugmentation(PortNumberMatchEntry.class)
+ .getPortNumber().getValue().intValue());
+
+
+ }
+
+ }
+
+ }
+
+ }
+
+ private void OutputActionData() {
+
+ org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.OutputActionBuilder outputB = new org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.OutputActionBuilder();
+ outputB.setMaxLength(10);
+ Uri uri = new Uri(NodeConnectorIDType.CONTROLLER);
+ outputB.setOutputNodeConnector(uri);
+
+ ActionBuilder AB = new ActionBuilder();
+ AB.setAction(outputB.build());
+
+ actions.add(actionItem++, AB.build());
+
+ }
+
+ private void CopyTtlData() {
+ CopyTtlOutBuilder copyB = new CopyTtlOutBuilder();
+
+ ActionBuilder AB = new ActionBuilder();
+ AB.setAction(copyB.build());
+
+ actions.add(actionItem++, AB.build());
+
+ CopyTtlInBuilder copyTtlInBuilder = new CopyTtlInBuilder();
+
+ ActionBuilder AB1 = new ActionBuilder();
+ AB1.setAction(copyTtlInBuilder.build());
+
+ actions.add(actionItem++, AB1.build());
+
+ }
+
+ private void MplsTtlActionData() {
+
+ SetMplsTtlActionBuilder setMplsTtlActionB = new SetMplsTtlActionBuilder();
+
+ setMplsTtlActionB.setMplsTtl((short) 10);
+ ActionBuilder AB1 = new ActionBuilder();
+ AB1.setAction(setMplsTtlActionB.build());
+
+ actions.add(actionItem++, AB1.build());
+
+ DecMplsTtlBuilder decMplsTtlB = new DecMplsTtlBuilder();
+
+ ActionBuilder AB = new ActionBuilder();
+ AB.setAction(decMplsTtlB.build());
+
+ actions.add(actionItem++, AB1.build());
+ }
+
+ private void vlanActionData() {
+ PushVlanActionBuilder pvB = new PushVlanActionBuilder();
+
+ pvB.setVlanId(new VlanId(10));
+
+ ActionBuilder AB1 = new ActionBuilder();
+ AB1.setAction(pvB.build());
+
+ actions.add(actionItem++, AB1.build());
+
+ PopVlanActionBuilder popVAB = new PopVlanActionBuilder();
+
+ ActionBuilder AB = new ActionBuilder();
+ AB.setAction(popVAB.build());
+
+ actions.add(actionItem++, AB.build());
+
+ }
+
+ private void mplsActionData() {
+
+ PushMplsActionBuilder pushMB = new PushMplsActionBuilder();
+ pushMB.setEthernetType(10);
+
+ ActionBuilder AB = new ActionBuilder();
+ AB.setAction(pushMB.build());
+
+ actions.add(actionItem++, AB.build());
+
+ PopMplsActionBuilder popMB = new PopMplsActionBuilder();
+ popMB.setEthernetType(10);
+
+ ActionBuilder AB1 = new ActionBuilder();
+ AB1.setAction(popMB.build());
+
+ actions.add(actionItem++, AB1.build());
+ }
+
+ private void setQueueActionData() {
+
+ SetQueueActionBuilder setQB = new SetQueueActionBuilder();
+ setQB.setQueue("99");
+
+ ActionBuilder AB1 = new ActionBuilder();
+ AB1.setAction(setQB.build());
+
+ actions.add(actionItem++, AB1.build());
+
+ }
+
+}
\ No newline at end of file
--- /dev/null
+package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.CopyTtlIn;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.CopyTtlInBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.GroupAction;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.GroupActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetMplsTtlAction;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetMplsTtlActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.AddGroupInputBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.GroupId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.Buckets;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.BucketsBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.Bucket;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.BucketBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.GroupIdAction;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsList;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.GroupModCommand;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.GroupType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GroupModInput;
+
+public class GroupConvertorTest {
+
+ @Test
+ public void testGroupModConvertorwithallParameters() {
+
+ AddGroupInputBuilder addGroupBuilder = new AddGroupInputBuilder();
+
+ addGroupBuilder.setGroupId(new GroupId(10L));
+
+ addGroupBuilder
+ .setGroupType(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.GroupTypes.GroupType.GroupAll);
+ List<Bucket> bucketList = new ArrayList<Bucket>();
+ List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action> actionsList = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action>();
+ List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action> actionsList1 = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action>();
+
+ // Action1
+ GroupActionBuilder groupActionBuilder = new GroupActionBuilder();
+ groupActionBuilder.setGroup("005");
+ GroupAction groupIdaction = groupActionBuilder.build();
+ ActionBuilder actionsB = new ActionBuilder();
+ actionsB.setAction(groupIdaction);
+
+ // Action2:
+ GroupActionBuilder groupActionBuilder1 = new GroupActionBuilder();
+ groupActionBuilder1.setGroup("006");
+ GroupAction groupIdaction1 = groupActionBuilder.build();
+ ActionBuilder actionsB1 = new ActionBuilder();
+ actionsB1.setAction(groupIdaction1);
+
+ actionsList.add(actionsB.build());
+ actionsList.add(actionsB1.build());
+
+
+ BucketsBuilder bucketsB = new BucketsBuilder();
+
+ BucketBuilder bucketB = new BucketBuilder();
+ bucketB.setWeight(10);
+ bucketB.setWatchPort(20L);
+ bucketB.setWatchGroup(22L);
+
+ bucketB.setAction(actionsList);
+ Bucket bucket = bucketB.build();
+
+ bucketList.add(bucket); // List of bucket
+
+ BucketBuilder bucketB1 = new BucketBuilder();
+ bucketB1.setWeight(50);
+ bucketB1.setWatchPort(60L);
+ bucketB1.setWatchGroup(70L);
+
+ // Action1
+ CopyTtlInBuilder copyTtlB = new CopyTtlInBuilder();
+ CopyTtlIn copyTtl = copyTtlB.build();
+ ActionBuilder actionsB2 = new ActionBuilder();
+ actionsB2.setAction(copyTtl);
+
+ // Action2:
+ SetMplsTtlActionBuilder setMplsTtlActionBuilder = new SetMplsTtlActionBuilder();
+ setMplsTtlActionBuilder.setMplsTtl((short)0X1);
+ SetMplsTtlAction setMAction = setMplsTtlActionBuilder.build();
+ ActionBuilder actionsB3 = new ActionBuilder();
+
+ actionsB3.setAction(setMAction);
+
+
+ actionsList1.add(actionsB2.build());
+ actionsList1.add(actionsB3.build());
+
+ bucketB1.setAction(actionsList);
+
+ Bucket bucket1 = bucketB1.build(); // second bucket
+
+ bucketList.add(bucket1);
+
+ bucketsB.setBucket(bucketList);// List of bucket added to the Buckets
+ Buckets buckets = bucketsB.build();
+
+ addGroupBuilder.setBuckets(buckets);
+
+ GroupModInput outAddGroupInput = GroupConvertor.toGroupModInput(addGroupBuilder.build());
+
+ Assert.assertEquals(GroupModCommand.OFPGCADD, outAddGroupInput.getCommand());
+ Assert.assertEquals(GroupType.OFPGTALL, outAddGroupInput.getType());
+
+ Assert.assertEquals(10L, (long) outAddGroupInput.getGroupId());
+ Assert.assertEquals(10, (int) outAddGroupInput.getBucketsList().get(0).getWeight());
+ Assert.assertEquals(20L, (long) outAddGroupInput.getBucketsList().get(0).getWatchPort().getValue());
+ Assert.assertEquals((Long) 22L, outAddGroupInput.getBucketsList().get(0).getWatchGroup());
+
+ List<ActionsList> outActionList = outAddGroupInput.getBucketsList().get(0).getActionsList();
+ for (int outItem = 0; outItem < outActionList.size(); outItem++) {
+ org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.actions.list.Action action = outActionList
+ .get(outItem).getAction();
+ if (action instanceof GroupIdAction) {
+ Assert.assertEquals((Long) 5L, ((GroupIdAction) action).getGroupId());
+
+ }
+ // TODO:setMplsTTL :OF layer doesnt have get();
+ }
+
+ Assert.assertEquals((Integer) 50, outAddGroupInput.getBucketsList().get(1).getWeight());
+ Assert.assertEquals((long) 60, (long) outAddGroupInput.getBucketsList().get(1).getWatchPort().getValue());
+ Assert.assertEquals((Long) 70L, outAddGroupInput.getBucketsList().get(1).getWatchGroup());
+ List<ActionsList> outActionList1 = outAddGroupInput.getBucketsList().get(1).getActionsList();
+ for (int outItem = 0; outItem < outActionList1.size(); outItem++) {
+ org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.actions.list.Action action = outActionList1
+ .get(outItem).getAction();
+ if (action instanceof GroupIdAction) {
+
+ Assert.assertEquals((Long) 6L, ((GroupIdAction) action).getGroupId());
+
+
+ }
+ // TODO:setMplsTTL :OF layer doesnt have get();
+ }
+
+ }
+
+}
--- /dev/null
+package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.Assert;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+
+
+import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.MeterConvertor;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.AddMeterInput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.AddMeterInputBuilder;
+
+import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.MeterBandType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.MeterFlags.Flags;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.band.type.BandType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.band.type.band.type.Drop;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.band.type.band.type.DropBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.band.type.band.type.DscpRemark;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.band.type.band.type.DscpRemarkBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.band.type.band.type.Experimenter;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.band.type.band.type.ExperimenterBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.MeterBandHeaders;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.MeterBandHeadersBuilder;
+
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MeterModInput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.band.header.MeterBand;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.meter.band.headers.MeterBandHeader;
+
+import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.meter.band.headers.MeterBandHeaderBuilder;
+
+import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.meter.band.headers.meter.band.header.MeterBandTypesBuilder;
+
+
+
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MeterModCommand;
+
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.band.header.meter.band.MeterBandDrop;
+
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.band.header.meter.band.MeterBandDscpRemark;
+
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.band.header.meter.band.MeterBandExperimenter;
+
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.mod.Bands;
+
+
+public class MeterConvertorTest {
+
+
+
+@Test
+public void testMeterModCommandConvertorwithAllParameters()
+{
+
+ /// DROP Band
+ MeterBandHeaderBuilder meterBandHeaderBuilder = new MeterBandHeaderBuilder();
+ MeterBandTypesBuilder meterBandTypesB = new MeterBandTypesBuilder();
+
+ org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.MeterBandType.Flags bandFlag = new org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.MeterBandType.Flags(true, false, false);
+ meterBandTypesB.setFlags(bandFlag);//_ofpmbtDrop
+ DropBuilder drop = new DropBuilder();
+ drop.setBurstSize(10L);
+ drop.setRate(20L);
+ Drop drp = drop.build();
+ meterBandHeaderBuilder.setBandType(drp);
+ meterBandHeaderBuilder.setMeterBandTypes(meterBandTypesB.build());
+
+
+
+ MeterBandHeader meterBH = meterBandHeaderBuilder.build();
+
+ //DSCP Mark
+ MeterBandHeaderBuilder meterBandHeaderBuilder1 = new MeterBandHeaderBuilder();
+ MeterBandTypesBuilder meterBandTypesB1 = new MeterBandTypesBuilder();
+ org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.MeterBandType.Flags bandFlag1 = new org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.MeterBandType.Flags(false, true, false);
+
+ meterBandTypesB1.setFlags(bandFlag1);
+ DscpRemarkBuilder dscp = new DscpRemarkBuilder();
+ dscp.setBurstSize(11L);
+ dscp.setRate(21L);
+ dscp.setPercLevel((short)1);
+ DscpRemark dscpRemark = dscp.build();
+ meterBandHeaderBuilder1.setBandType(dscpRemark);
+ meterBandHeaderBuilder1.setMeterBandTypes(meterBandTypesB1.build());
+
+ MeterBandHeader meterBH1 = meterBandHeaderBuilder1.build();
+
+ //Experimental
+
+ MeterBandHeaderBuilder meterBandHeaderBuilder2 = new MeterBandHeaderBuilder();
+ MeterBandTypesBuilder meterBandTypesB2 = new MeterBandTypesBuilder();
+ org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.MeterBandType.Flags bandFlag2 = new org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.MeterBandType.Flags(false,false, true);
+ meterBandTypesB2.setFlags(bandFlag2);
+
+ ExperimenterBuilder exp = new ExperimenterBuilder();
+ exp.setBurstSize(12L);
+ exp.setRate(22L);
+ exp.setExperimenter(23L);
+ Experimenter experimenter = exp.build();
+ meterBandHeaderBuilder2.setBandType(experimenter);
+ meterBandHeaderBuilder2.setMeterBandTypes(meterBandTypesB2.build());
+ MeterBandHeader meterBH2 = meterBandHeaderBuilder2.build();
+
+
+ List<MeterBandHeader> meterBandList = new ArrayList<MeterBandHeader>();
+ meterBandList.add(0,meterBH);
+ meterBandList.add(1,meterBH1);
+ meterBandList.add(2,meterBH2);
+
+ //Constructing List of Bands
+ MeterBandHeadersBuilder meterBandHeadersBuilder = new MeterBandHeadersBuilder();
+ meterBandHeadersBuilder.setMeterBandHeader(meterBandList);
+
+ MeterBandHeaders meterBandHeaders =meterBandHeadersBuilder.build();
+
+
+ AddMeterInputBuilder addMeterFromSAL = new AddMeterInputBuilder();
+
+
+ addMeterFromSAL.setMeterBandHeaders(meterBandHeaders); //MeterBands added to the meter command.
+Long temp = 10L;
+
+ //NodeKey key = new NodeKey(new NodeId("24"));
+ //InstanceIdentifier<Node> path = InstanceIdentifier.builder().node(Nodes.class).node(Node.class, key).toInstance();
+
+ addMeterFromSAL.setMeterId(new org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.MeterId(10L));
+
+
+ Flags flagV = new Flags(true, true, true,true);
+ addMeterFromSAL.setFlags(flagV);
+
+ AddMeterInput meterInputCommand = addMeterFromSAL.build();
+ MeterModInput outMeterModInput = MeterConvertor.toMeterModInput(meterInputCommand);
+
+
+
+
+ Assert.assertEquals(MeterModCommand.OFPMCADD, outMeterModInput.getCommand());
+ Assert.assertTrue(outMeterModInput.getFlags().isOFPMFBURST());
+ Assert.assertEquals(temp,outMeterModInput.getMeterId().getValue());
+ //BandInformation starts here:
+
+ List<Bands> bands = outMeterModInput.getBands();
+ for (Bands currentBand : bands) {
+ MeterBand meterBand = currentBand.getMeterBand();
+ if(meterBand instanceof MeterBandDrop){
+
+ Assert.assertEquals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MeterBandType.OFPMBTDROP, ((MeterBandDrop) meterBand).getType());
+ Assert.assertEquals((long)20,(long)((MeterBandDrop) meterBand).getBurstSize());
+ Assert.assertEquals((long)10, (long)((MeterBandDrop) meterBand).getRate());
+
+ }
+ if(meterBand instanceof MeterBandDscpRemark)
+ {
+ Assert.assertEquals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MeterBandType.OFPMBTDSCPREMARK, ((MeterBandDscpRemark) meterBand).getType());
+ Assert.assertEquals((long)11,(long)((MeterBandDscpRemark) meterBand).getBurstSize());
+ Assert.assertEquals((long)21, (long)((MeterBandDscpRemark) meterBand).getRate());
+ Assert.assertEquals((short)1, (short)((MeterBandDscpRemark) meterBand).getPrecLevel());
+
+ }
+ if(meterBand instanceof MeterBandExperimenter)
+ {
+ Assert.assertEquals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MeterBandType.OFPMBTEXPERIMENTER, ((MeterBandExperimenter) meterBand).getType());
+ Assert.assertEquals((long)12,(long)((MeterBandExperimenter) meterBand).getBurstSize());
+ Assert.assertEquals((long)22, (long)((MeterBandExperimenter) meterBand).getRate());
+ Assert.assertEquals((long)23, (long)((MeterBandExperimenter) meterBand).getExperimenter());
+
+ }
+
+ }
+
+
+}
+
+
+
+}
--- /dev/null
+package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor;
+
+import org.junit.Test;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.PortFeatures;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.port.service.rev131107.UpdatePortInput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.port.service.rev131107.UpdatePortInputBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.port.service.rev131107.port.update.UpdatedPortBuilder;
+
+public class PortConvertorTest {
+
+
+ @Test
+ public void testPortModCommandConvertorwithAllParameters()
+ {
+
+
+ UpdatePortInputBuilder updatePortInputB = new UpdatePortInputBuilder();
+ UpdatedPortBuilder updatedPortBuilder = new UpdatedPortBuilder();
+
+ PortFeatures features = new PortFeatures(true, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null);
+
+
+ updatePortInputB.setUpdatedPort(updatedPortBuilder.build());
+
+ UpdatePortInput source = updatePortInputB.build();
+
+
+
+ // PortModInput portOut = PortConvertor.toPortModInput();
+
+
+ return;
+
+
+
+ }
+}