package org.opendaylight.genius.mdsalutil;
import java.math.BigInteger;
-import java.net.InetAddress;
-
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.GroupActionCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.drop.action._case.DropActionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.group.input.buckets.bucket.action.action.NxActionResubmitRpcAddGroupCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionConntrackNodesNodeTableFlowApplyActionsCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.conntrack.grouping.NxConntrack;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.conntrack.grouping.NxConntrackBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.resubmit.grouping.NxResubmitBuilder;
public enum ActionType {
group {
@Override
- public Action buildAction(ActionInfo actionInfo) {
+ public Action buildAction(int newActionKey, ActionInfo actionInfo) {
long groupId = Long.parseLong(actionInfo.getActionValues()[0]);
return new ActionBuilder().setAction(
new GroupActionCaseBuilder().setGroupAction(
new GroupActionBuilder().setGroupId(groupId).build()).build())
- .setKey(new ActionKey(actionInfo.getActionKey())).build();
+ .setKey(new ActionKey(newActionKey)).build();
}
},
output {
@Override
- public Action buildAction(ActionInfo actionInfo) {
+ public Action buildAction(int newActionKey, ActionInfo actionInfo) {
String[] actionValues = actionInfo.getActionValues();
String port = actionValues[0];
int maxLength = 0;
new OutputActionCaseBuilder().setOutputAction(
new OutputActionBuilder().setMaxLength(Integer.valueOf(maxLength))
.setOutputNodeConnector(new Uri(port)).build()).build())
- .setKey(new ActionKey(actionInfo.getActionKey())).build();
+ .setKey(new ActionKey(newActionKey)).build();
}
},
pop_mpls {
@Override
- public Action buildAction(ActionInfo actionInfo) {
+ public Action buildAction(int newActionKey, ActionInfo actionInfo) {
return new ActionBuilder().setAction(
new PopMplsActionCaseBuilder().setPopMplsAction(
new PopMplsActionBuilder().setEthernetType(
Integer.valueOf(NwConstants.ETHTYPE_IPV4)).build()).build())
- .setKey(new ActionKey(actionInfo.getActionKey())).build();
+ .setKey(new ActionKey(newActionKey)).build();
}
},
pop_pbb {
@Override
- public Action buildAction(ActionInfo actionInfo) {
+ public Action buildAction(int newActionKey, ActionInfo actionInfo) {
return new ActionBuilder()
.setAction(new PopPbbActionCaseBuilder().setPopPbbAction(new PopPbbActionBuilder().build()).build())
- .setKey(new ActionKey(actionInfo.getActionKey())).build();
+ .setKey(new ActionKey(newActionKey)).build();
}
},
pop_vlan {
@Override
- public Action buildAction(ActionInfo actionInfo) {
+ public Action buildAction(int newActionKey, ActionInfo actionInfo) {
return new ActionBuilder().setAction(
new PopVlanActionCaseBuilder().setPopVlanAction(new PopVlanActionBuilder().build()).build())
- .setKey(new ActionKey(actionInfo.getActionKey())).build();
+ .setKey(new ActionKey(newActionKey)).build();
}
},
push_mpls {
@Override
- public Action buildAction(ActionInfo actionInfo) {
+ public Action buildAction(int newActionKey, ActionInfo actionInfo) {
return new ActionBuilder().setAction(new PushMplsActionCaseBuilder().setPushMplsAction(
new PushMplsActionBuilder().setEthernetType(
Integer.valueOf(NwConstants.ETHTYPE_MPLS_UC)).build()).build())
- .setKey(new ActionKey(actionInfo.getActionKey())).build();
+ .setKey(new ActionKey(newActionKey)).build();
}
},
push_pbb {
@Override
- public Action buildAction(ActionInfo actionInfo) {
+ public Action buildAction(int newActionKey, ActionInfo actionInfo) {
return new ActionBuilder().setAction(
new PushPbbActionCaseBuilder().setPushPbbAction(
new PushPbbActionBuilder()
.setEthernetType(Integer.valueOf(NwConstants.ETHTYPE_PBB)).build()).build())
- .setKey(new ActionKey(actionInfo.getActionKey())).build();
+ .setKey(new ActionKey(newActionKey)).build();
}
},
push_vlan {
@Override
- public Action buildAction(ActionInfo actionInfo) {
+ public Action buildAction(int newActionKey, ActionInfo actionInfo) {
return new ActionBuilder().setAction(
new PushVlanActionCaseBuilder().setPushVlanAction(
new PushVlanActionBuilder().setEthernetType(
Integer.valueOf(NwConstants.ETHTYPE_802_1Q)).build()).build())
- .setKey(new ActionKey(actionInfo.getActionKey())).build();
+ .setKey(new ActionKey(newActionKey)).build();
}
},
set_field_mpls_label {
@Override
- public Action buildAction(ActionInfo actionInfo) {
+ public Action buildAction(int newActionKey, ActionInfo actionInfo) {
String[] actionValues = actionInfo.getActionValues();
long label = Long.valueOf(actionValues[0]);
return new ActionBuilder().setAction(
new SetFieldCaseBuilder().setSetField(new SetFieldBuilder().setProtocolMatchFields(
new ProtocolMatchFieldsBuilder().setMplsLabel(label).build()).build())
- .build()).setKey(new ActionKey(actionInfo.getActionKey())).build();
+ .build()).setKey(new ActionKey(newActionKey)).build();
}
},
set_field_pbb_isid {
@Override
- public Action buildAction(ActionInfo actionInfo) {
+ public Action buildAction(int newActionKey, ActionInfo actionInfo) {
String[] actionValues = actionInfo.getActionValues();
long label = Long.valueOf(actionValues[0]);
new SetFieldBuilder().setProtocolMatchFields(
new ProtocolMatchFieldsBuilder().setPbb(
new PbbBuilder().setPbbIsid(label).build()).build()).build())
- .build()).setKey(new ActionKey(actionInfo.getActionKey())).build();
+ .build()).setKey(new ActionKey(newActionKey)).build();
}
},
set_field_vlan_vid {
@Override
- public Action buildAction(ActionInfo actionInfo) {
+ public Action buildAction(int newActionKey, ActionInfo actionInfo) {
String[] actionValues = actionInfo.getActionValues();
int vlanId = Integer.valueOf(actionValues[0]);
new VlanMatchBuilder().setVlanId(
new VlanIdBuilder().setVlanId(new VlanId(vlanId))
.setVlanIdPresent(true).build()).build()).build()).build())
- .setKey(new ActionKey(actionInfo.getActionKey())).build();
+ .setKey(new ActionKey(newActionKey)).build();
}
},
set_field_tunnel_id {
@Override
- public Action buildAction(ActionInfo actionInfo) {
+ public Action buildAction(int newActionKey, ActionInfo actionInfo) {
BigInteger [] actionValues = actionInfo.getBigActionValues();
if (actionValues.length == 2) {
return new ActionBuilder().setAction(
.setTunnel(new TunnelBuilder().setTunnelId(actionValues[0])
.setTunnelMask(actionValues[1]).build()).build())
.build())
- .setKey(new ActionKey(actionInfo.getActionKey())).build();
+ .setKey(new ActionKey(newActionKey)).build();
} else {
return new ActionBuilder().setAction(
new SetFieldCaseBuilder().setSetField(
.setTunnel(new TunnelBuilder().setTunnelId(actionValues[0])
.build()).build())
.build())
- .setKey(new ActionKey(actionInfo.getActionKey())).build();
+ .setKey(new ActionKey(newActionKey)).build();
}
}
set_field_eth_dest {
@Override
- public Action buildAction(ActionInfo actionInfo) {
+ public Action buildAction(int newActionKey, ActionInfo actionInfo) {
String[] actionValues = actionInfo.getActionValues();
MacAddress mac = new MacAddress(actionValues[0]);
new SetFieldBuilder().setEthernetMatch(
new EthernetMatchBuilder().setEthernetDestination(
new EthernetDestinationBuilder().setAddress(mac).build()).build())
- .build()).build()).setKey(new ActionKey(actionInfo.getActionKey())).build();
+ .build()).build()).setKey(new ActionKey(newActionKey)).build();
}
set_udp_protocol {
@Override
- public Action buildAction(ActionInfo actionInfo) {
+ public Action buildAction(int newActionKey, ActionInfo actionInfo) {
return new ActionBuilder().setAction(
new SetFieldCaseBuilder().setSetField(
new SetFieldBuilder().setIpMatch(
new IpMatchBuilder().setIpProtocol((short) 17).build()).
- build()).build()).setKey(new ActionKey(actionInfo.getActionKey())).build();
+ build()).build()).setKey(new ActionKey(newActionKey)).build();
}
},
punt_to_controller {
@Override
- public Action buildAction(ActionInfo actionInfo) {
+ public Action buildAction(int newActionKey, ActionInfo actionInfo) {
ActionBuilder ab = new ActionBuilder();
OutputActionBuilder output = new OutputActionBuilder();
output.setMaxLength(0xffff);
Uri value = new Uri(OutputPortValues.CONTROLLER.toString());
output.setOutputNodeConnector(value);
ab.setAction(new OutputActionCaseBuilder().setOutputAction(output.build()).build());
- ab.setKey(new ActionKey(actionInfo.getActionKey()));
+ ab.setKey(new ActionKey(newActionKey));
return ab.build();
}
set_udp_destination_port {
@Override
- public Action buildAction(ActionInfo actionInfo) {
+ public Action buildAction(int newActionKey, ActionInfo actionInfo) {
String[] actionValues = actionInfo.getActionValues();
Integer portNumber = new Integer(actionValues[0]);
new SetFieldBuilder().setLayer4Match(
new UdpMatchBuilder().setUdpDestinationPort(
new PortNumber(portNumber)).build())
- .build()).build()).setKey(new ActionKey(actionInfo.getActionKey())).build();
+ .build()).build()).setKey(new ActionKey(newActionKey)).build();
}
set_udp_source_port {
@Override
- public Action buildAction(ActionInfo actionInfo) {
+ public Action buildAction(int newActionKey, ActionInfo actionInfo) {
String[] actionValues = actionInfo.getActionValues();
Integer portNumber = new Integer(actionValues[0]);
new SetFieldBuilder().setLayer4Match(
new UdpMatchBuilder().setUdpSourcePort(
new PortNumber(portNumber)).build())
- .build()).build()).setKey(new ActionKey(actionInfo.getActionKey())).build();
+ .build()).build()).setKey(new ActionKey(newActionKey)).build();
}
set_tcp_destination_port {
@Override
- public Action buildAction(ActionInfo actionInfo) {
+ public Action buildAction(int newActionKey, ActionInfo actionInfo) {
String[] actionValues = actionInfo.getActionValues();
Integer portNumber = new Integer(actionValues[0]);
new SetFieldBuilder().setLayer4Match(
new TcpMatchBuilder().setTcpDestinationPort(
new PortNumber(portNumber)).build())
- .build()).build()).setKey(new ActionKey(actionInfo.getActionKey())).build();
+ .build()).build()).setKey(new ActionKey(newActionKey)).build();
}
set_tcp_source_port {
@Override
- public Action buildAction(ActionInfo actionInfo) {
+ public Action buildAction(int newActionKey, ActionInfo actionInfo) {
String[] actionValues = actionInfo.getActionValues();
Integer portNumber = new Integer(actionValues[0]);
new SetFieldBuilder().setLayer4Match(
new TcpMatchBuilder().setTcpSourcePort(
new PortNumber(portNumber)).build())
- .build()).build()).setKey(new ActionKey(actionInfo.getActionKey())).build();
+ .build()).build()).setKey(new ActionKey(newActionKey)).build();
}
},
set_source_ip {
@Override
- public Action buildAction(ActionInfo actionInfo) {
+ public Action buildAction(int newActionKey, ActionInfo actionInfo) {
String[] actionValues = actionInfo.getActionValues();
String sourceIp = actionValues[0];
String sourceMask = (actionValues.length > 1) ? actionValues[1] : "32";
new SetFieldBuilder().setLayer3Match(
new Ipv4MatchBuilder().setIpv4Source(
new Ipv4Prefix(source)).build()).
- build()).build()).setKey(new ActionKey(actionInfo.getActionKey())).build();
+ build()).build()).setKey(new ActionKey(newActionKey)).build();
}
set_destination_ip {
@Override
- public Action buildAction(ActionInfo actionInfo) {
+ public Action buildAction(int newActionKey, ActionInfo actionInfo) {
String[] actionValues = actionInfo.getActionValues();
String destIp = actionValues[0];
String destMask = (actionValues.length > 1) ? actionValues[1] : "32";
new SetFieldCaseBuilder().setSetField(
new SetFieldBuilder().setLayer3Match(
new Ipv4MatchBuilder().setIpv4Destination(
- new Ipv4Prefix(destination)).build()).
- build()).build()).setKey(new ActionKey(actionInfo.getActionKey())).build();
+ new Ipv4Prefix(destination)).build())
+ .build()).build()).setKey(new ActionKey(newActionKey)).build();
}
set_field_eth_src {
@Override
- public Action buildAction(ActionInfo actionInfo) {
+ public Action buildAction(int newActionKey, ActionInfo actionInfo) {
String[] actionValues = actionInfo.getActionValues();
MacAddress mac = new MacAddress(actionValues[0]);
new SetFieldBuilder().setEthernetMatch(
new EthernetMatchBuilder().setEthernetSource(
new EthernetSourceBuilder().setAddress(mac).build()).build())
- .build()).build()).setKey(new ActionKey(actionInfo.getActionKey())).build();
+ .build()).build()).setKey(new ActionKey(newActionKey)).build();
}
},
drop_action {
@Override
- public Action buildAction(ActionInfo actionInfo) {
+ public Action buildAction(int newActionKey, ActionInfo actionInfo) {
DropActionBuilder dab = new DropActionBuilder();
DropAction dropAction = dab.build();
ActionBuilder ab = new ActionBuilder();
ab.setAction(new DropActionCaseBuilder().setDropAction(dropAction).build());
- ab.setKey(new ActionKey(actionInfo.getActionKey())).build();
+ ab.setKey(new ActionKey(newActionKey)).build();
return ab.build();
}
},
nx_resubmit {
@Override
- public Action buildAction(ActionInfo actionInfo) {
+ public Action buildAction(int newActionKey, ActionInfo actionInfo) {
String[] actionValues = actionInfo.getActionValues();
NxResubmitBuilder nxarsb = new NxResubmitBuilder();
nxarsb.setTable(Short.parseShort(actionValues[0]));
ActionBuilder ab = new ActionBuilder();
ab.setAction(new NxActionResubmitRpcAddGroupCaseBuilder().setNxResubmit(nxarsb.build()).build());
- ab.setKey(new ActionKey(actionInfo.getActionKey()));
+ ab.setKey(new ActionKey(newActionKey));
return ab.build();
}
},
goto_table {
@Override
- public Action buildAction(ActionInfo actionInfo) {
- ActionBuilder ab = new ActionBuilder();
+ public Action buildAction(int newActionKey, ActionInfo actionInfo) {
+ new ActionBuilder();
return null;
}
},
nx_conntrack {
@Override
- public Action buildAction(ActionInfo actionInfo) {
+ public Action buildAction(int newActionKey, ActionInfo actionInfo) {
String[] actionValues = actionInfo.getActionValues();
Integer flags = new Integer(actionValues[0]);
Long zoneSrc = new Long(actionValues[1]);
ActionBuilder ab = new ActionBuilder();
ab.setAction(new NxActionConntrackNodesNodeTableFlowApplyActionsCaseBuilder()
.setNxConntrack(ctb.build()).build());
- ab.setKey(new ActionKey(actionInfo.getActionKey()));
+ ab.setKey(new ActionKey(newActionKey));
return ab.build();
}
};
private static final int RADIX_HEX = 16;
- public abstract Action buildAction(ActionInfo actionInfo);
+
+ public abstract Action buildAction(int newActionKey, ActionInfo actionInfo);
}