import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.nx.reg.load.DstBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.TransmitPacketInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.TransmitPacketInputBuilder;
-import org.opendaylight.yangtools.concepts.Builder;
-import org.opendaylight.yangtools.yang.binding.ChildOf;
import org.opendaylight.yangtools.yang.binding.DataObject;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.InstanceIdentifierBuilder;
String flowName, int idleTimeOut, int hardTimeOut, BigInteger cookie,
List<? extends MatchInfoBase> listMatchInfoBase, List<InstructionInfo> listInstructionInfo) {
- FlowEntity flowEntity = new FlowEntity(dpnId);
-
- flowEntity.setTableId(tableId);
- flowEntity.setFlowId(flowId);
- flowEntity.setPriority(priority);
- flowEntity.setFlowName(flowName);
- flowEntity.setIdleTimeOut(idleTimeOut);
- flowEntity.setHardTimeOut(hardTimeOut);
- flowEntity.setCookie(cookie);
- flowEntity.setMatchInfoList(listMatchInfoBase);
- flowEntity.setInstructionInfoList(listInstructionInfo);
-
- return flowEntity;
+ FlowEntityBuilder builder = new FlowEntityBuilder()
+ .setDpnId(dpnId)
+ .setTableId(tableId)
+ .setFlowId(flowId)
+ .setPriority(priority)
+ .setFlowName(flowName)
+ .setIdleTimeOut(idleTimeOut)
+ .setHardTimeOut(hardTimeOut)
+ .setCookie(cookie);
+ if (listMatchInfoBase != null) {
+ builder.addAllMatchInfoList(listMatchInfoBase);
+ }
+ if (listInstructionInfo != null) {
+ builder.addAllInstructionInfoList(listInstructionInfo);
+ }
+ return builder.build();
}
// TODO: CHECK IF THIS IS USED
.setIngress(ingress).setEgress(ingress).build();
}
+ public static TransmitPacketInput getPacketOut(List<ActionInfo> actionInfos, byte[] payload, BigInteger dpnId,
+ NodeConnectorRef nodeConnRef) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public static TransmitPacketInput getPacketOut(List<Action> actions, byte[] payload, BigInteger dpnId) {
+ NodeConnectorRef ncRef = getDefaultNodeConnRef(dpnId);
+ return new TransmitPacketInputBuilder()
+ .setAction(actions)
+ .setPayload(payload)
+ .setNode(
+ new NodeRef(InstanceIdentifier.builder(Nodes.class)
+ .child(Node.class, new NodeKey(new NodeId("openflow:" + dpnId))).toInstance()))
+ .setIngress(ncRef).setEgress(ncRef).build();
+ }
+
public static Action retrieveSetTunnelIdAction(BigInteger tunnelId, int actionKey) {
return new ActionBuilder().setAction(
new SetFieldCaseBuilder().setSetField(new SetFieldBuilder().setTunnel(new TunnelBuilder()
return getNodeConnRef(NODE_PREFIX + SEPARATOR + dpId, port);
}
- public static NodeConnectorRef getNodeConnRef(String sNodeId, String port) {
- String sNodeConnectorKey;
- StringBuilder sbTmp;
- NodeId nodeId;
- NodeKey nodeKey;
- NodeConnectorId nodeConnectorId;
- NodeConnectorKey nodeConnectorKey;
- InstanceIdentifierBuilder<Nodes> nodesInstanceIdentifierBuilder;
- InstanceIdentifierBuilder<Node> nodeInstanceIdentifierBuilder;
- InstanceIdentifierBuilder<NodeConnector> nodeConnectorInstanceIdentifierBuilder;
- InstanceIdentifier<NodeConnector> nodeConnectorInstanceIdentifier;
- NodeConnectorRef nodeConnectorRef;
-
- sbTmp = new StringBuilder();
-
- sbTmp.append(sNodeId);
- sbTmp.append(SEPARATOR);
- sbTmp.append(port);
-
- sNodeConnectorKey = sbTmp.toString();
- nodeConnectorId = new NodeConnectorId(sNodeConnectorKey);
- nodeConnectorKey = new NodeConnectorKey(nodeConnectorId);
-
- nodeId = new NodeId(sNodeId);
- nodeKey = new NodeKey(nodeId);
-
- nodesInstanceIdentifierBuilder = InstanceIdentifier.builder(Nodes.class);
- nodeInstanceIdentifierBuilder = nodesInstanceIdentifierBuilder.child(Node.class, nodeKey);
- nodeConnectorInstanceIdentifierBuilder = nodeInstanceIdentifierBuilder.child(
- NodeConnector.class, nodeConnectorKey);
- nodeConnectorInstanceIdentifier = nodeConnectorInstanceIdentifierBuilder.toInstance();
- nodeConnectorRef = new NodeConnectorRef(nodeConnectorInstanceIdentifier);
+ public static NodeConnectorRef getNodeConnRef(String nodeId, String port) {
+ StringBuilder sb = new StringBuilder();
+ sb.append(nodeId);
+ sb.append(SEPARATOR);
+ sb.append(port);
+ String nodeConnectorKeyAsString = sb.toString();
+ NodeConnectorId nodeConnectorId = new NodeConnectorId(nodeConnectorKeyAsString);
+ NodeConnectorKey nodeConnectorKey = new NodeConnectorKey(nodeConnectorId);
+
+ NodeKey nodeKey = new NodeKey(new NodeId(nodeId));
+ InstanceIdentifierBuilder<Node> nodeInstanceIdentifierBuilder
+ = InstanceIdentifier.builder(Nodes.class).child(Node.class, nodeKey);
+ InstanceIdentifierBuilder<NodeConnector> nodeConnectorInstanceIdentifierBuilder
+ = nodeInstanceIdentifierBuilder.child(NodeConnector.class, nodeConnectorKey);
+ InstanceIdentifier<NodeConnector> nodeConnectorInstanceIdentifier
+ = nodeConnectorInstanceIdentifierBuilder.toInstance();
+ NodeConnectorRef nodeConnectorRef = new NodeConnectorRef(nodeConnectorInstanceIdentifier);
return nodeConnectorRef;
}
return getOfPortNumberFromPortName(nodeConnectorId.getValue());
}
+ public static long getOfPortNumberFromPortName(String mdsalPortName) {
+ String portNumber = mdsalPortName.substring(mdsalPortName.lastIndexOf(":") + 1);
+ return Long.parseLong(portNumber);
+ }
+
public static long getDpnIdFromPortName(NodeConnectorId nodeConnectorId) {
+ if (nodeConnectorId == null || nodeConnectorId.getValue() == null) {
+ return -1;
+ }
try {
String ofPortName = nodeConnectorId.getValue();
return Long.parseLong(ofPortName.substring(ofPortName.indexOf(":") + 1,
ofPortName.lastIndexOf(":")));
- } catch (Exception e) {
+ } catch (NumberFormatException | IndexOutOfBoundsException e) {
LOG.error("NodeConnectorId not of expected format openflow:dpnid:portnum");
return -1;
}
}
- public static BigInteger getDpnId(String datapathId){
+ public static BigInteger getDpnId(String datapathId) {
if (datapathId != null) {
String dpIdStr = datapathId.replace(":", "");
BigInteger dpnId = new BigInteger(dpIdStr, 16);
return null;
}
- public static long getOfPortNumberFromPortName(String sMdsalPortName) {
- String portNumber = sMdsalPortName.substring(sMdsalPortName.lastIndexOf(":") + 1);
- return Long.parseLong(portNumber);
- }
-
- public static TransmitPacketInput getPacketOut(List<ActionInfo> actionInfos, byte[] payload, BigInteger dpnId,
- NodeConnectorRef nodeConnRef) {
- // TODO Auto-generated method stub
- return null;
- }
-
public static Instruction buildAndGetPopVlanActionInstruction(int actionKey, int instructionKey) {
Action popVlanAction = new ActionBuilder().setAction(
new PopVlanActionCaseBuilder().setPopVlanAction(new PopVlanActionBuilder().build()).build())
return buildApplyActionsInstruction(actions, 0);
}
- public static Instruction buildWriteActionsInstruction(List<Action> actions) {
- WriteActions writeActions = new WriteActionsBuilder().setAction(actions).build();
- WriteActionsCase writeActionsCase = new WriteActionsCaseBuilder().setWriteActions(writeActions).build();
- InstructionBuilder instructionBuilder = new InstructionBuilder();
-
- instructionBuilder.setInstruction(writeActionsCase);
- instructionBuilder.setKey(new InstructionKey(0));
- return instructionBuilder.build();
- }
-
public static Instruction buildApplyActionsInstruction(List<Action> listAction, int instructionKey) {
ApplyActions applyActions = new ApplyActionsBuilder().setAction(listAction).build();
ApplyActionsCase applyActionsCase = new ApplyActionsCaseBuilder().setApplyActions(applyActions).build();
return instructionBuilder.build();
}
+ public static Instruction buildWriteActionsInstruction(List<Action> actions) {
+ WriteActions writeActions = new WriteActionsBuilder().setAction(actions).build();
+ WriteActionsCase writeActionsCase = new WriteActionsCaseBuilder().setWriteActions(writeActions).build();
+ InstructionBuilder instructionBuilder = new InstructionBuilder();
+
+ instructionBuilder.setInstruction(writeActionsCase);
+ instructionBuilder.setKey(new InstructionKey(0));
+ return instructionBuilder.build();
+ }
+
public static List<Instruction> buildInstructionsDrop() {
return buildInstructionsDrop(0);
}
* Deprecated write.
*
* @deprecated Use
- * {@link SingleTransactionDataBroker#syncWrite(DataBroker, LogicalDatastoreType, InstanceIdentifier, DataObject)}
+ * {@link SingleTransactionDataBroker#syncWrite(
+ * DataBroker, LogicalDatastoreType, InstanceIdentifier, DataObject)}
*/
@Deprecated
public static <T extends DataObject> void syncWrite(DataBroker broker,
* Deprecated update.
*
* @deprecated Use
- * {@link SingleTransactionDataBroker#syncUpdate(DataBroker, LogicalDatastoreType, InstanceIdentifier, DataObject)}
+ * {@link SingleTransactionDataBroker#syncUpdate(
+ * DataBroker, LogicalDatastoreType, InstanceIdentifier, DataObject)}
*/
@Deprecated
public static <T extends DataObject> void syncUpdate(DataBroker broker,
NodeConnector::getId).orNull();
}
- public static TransmitPacketInput getPacketOut(List<Action> actions, byte[] payload, BigInteger dpnId) {
- NodeConnectorRef ncRef = getDefaultNodeConnRef(dpnId);
- return new TransmitPacketInputBuilder()
- .setAction(actions)
- .setPayload(payload)
- .setNode(
- new NodeRef(InstanceIdentifier.builder(Nodes.class)
- .child(Node.class, new NodeKey(new NodeId("openflow:" + dpnId))).toInstance()))
- .setIngress(ncRef).setEgress(ncRef).build();
- }
-
public static Action createNxOfInPortAction(final int actionKey, final int inPortVal) {
NxRegLoad regLoad = new NxRegLoadBuilder()
.setDst(new DstBuilder().setDstChoice(new DstNxOfInPortCaseBuilder().setOfInPort(Boolean.TRUE).build())