/**
*
- * @param regImp
+ * @param regImp the endpoint augmentation
* @throws Exception
*/
public static void unregister(EpRendererAugmentation regImp)
/**
* Constructor
*
- * @param dataProvider
- * @param rpcRegistry
- * @param executor
+ * @param dataProvider the {@link DataBroker}
+ * @param rpcRegistry the {@link RpcProviderRegistry}
+ * @param executor the {@link ScheduledExecutorService}
*/
private EndpointRpcRegistry(DataBroker dataProvider,
RpcProviderRegistry rpcRegistry,
/**
* Get the condition group as it applies to the given list of conditions
- * @param eg
- * @param conditions
- * @return
+ * @param eg the endpoint group key
+ * @param conditions the list of conditions
+ * @return the {@link ConditionGroup}
*/
public ConditionGroup getEgCondGroup(EgKey eg,
List<ConditionName> conditions) {
* Individual validators must override this method, if they want to execute
* validation on their children.
*
- * @param <T>
* @param objectToValidate Object that is validated by this validator
* @return List of child objects associated to {@code objectToValidate}. If
* there is not any child, return empty list or {@code null}.
public class NeutronOvsdbModuleFactory extends org.opendaylight.controller.config.yang.config.neutron_ovsdb.impl.AbstractNeutronOvsdbModuleFactory {
/**
- * @see org.opendaylight.controller.config.yang.config.neutron_mapper.impl.AbstractNeutronOvsdbModuleFactory#createModule(java.lang.String, org.opendaylight.controller.config.api.DependencyResolver, org.osgi.framework.BundleContext)
+ * @see org.opendaylight.controller.config.yang.config.neutron_ovsdb.impl.AbstractNeutronOvsdbModuleFactory#createModule(java.lang.String, org.opendaylight.controller.config.api.DependencyResolver, org.osgi.framework.BundleContext)
*/
@Override
public Module createModule(String instanceName, DependencyResolver dependencyResolver, BundleContext bundleContext) {
}
/**
- * @see org.opendaylight.controller.config.yang.config.neutron_mapper.impl.AbstractNeutronOvsdbModuleFactory#createModule(java.lang.String, org.opendaylight.controller.config.api.DependencyResolver, org.opendaylight.controller.config.api.DynamicMBeanWithInstance, org.osgi.framework.BundleContext)
+ * @see org.opendaylight.controller.config.yang.config.neutron_ovsdb.impl.AbstractNeutronOvsdbModuleFactory#createModule(java.lang.String, org.opendaylight.controller.config.api.DependencyResolver, org.opendaylight.controller.config.api.DynamicMBeanWithInstance, org.osgi.framework.BundleContext)
*/
@Override
public Module createModule(String instanceName, DependencyResolver dependencyResolver, DynamicMBeanWithInstance old,
/*
- * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.OptionsBuilder;
public abstract class AbstractTunnelType {
+
protected static final String DESTPORT_KEY = "dst_port";
protected static final String REMOTE_IP_KEY = "remote_ip";
protected static final String REMOTE_IP_VALUE = "flow";
protected static final String VNID_VALUE = "flow";
protected List<Options> createOptionsList(Map<String, String> optionsMap) {
- List<Options> options = new ArrayList<Options>();
+ List<Options> options = new ArrayList<Options>();
OptionsBuilder ob = new OptionsBuilder();
- for (Entry<String, String> entry: optionsMap.entrySet()) {
+ for (Entry<String, String> entry : optionsMap.entrySet()) {
ob.setOption(entry.getKey());
ob.setValue(entry.getValue());
options.add(ob.build());
}
return Collections.unmodifiableList(options);
- }
+ }
- protected boolean hasTunnelOptions(OvsdbTerminationPointAugmentation tpAugmentation,
- Map<String, String> optionsMap) {
+ protected boolean hasTunnelOptions(OvsdbTerminationPointAugmentation tpAugmentation, Map<String, String> optionsMap) {
Map<String, String> foundOpts = new HashMap<String, String>();
List<Options> options = tpAugmentation.getOptions();
if (options != null) {
- for (Options opt: options) {
+ for (Options opt : options) {
// skip invalid options
- if (opt.getOption() == null
- || opt.getValue() == null) continue;
+ if (opt.getOption() == null || opt.getValue() == null)
+ continue;
- if (optionsMap.containsKey(opt.getOption())
- && optionsMap.get(opt.getOption())
- .equals(opt.getValue())) {
+ if (optionsMap.containsKey(opt.getOption()) && optionsMap.get(opt.getOption()).equals(opt.getValue())) {
foundOpts.put(opt.getOption(), opt.getValue());
}
}
- if ((foundOpts.size() == optionsMap.size())
- && (options.size() == foundOpts.size())) {
+ if ((foundOpts.size() == optionsMap.size()) && (options.size() == foundOpts.size())) {
return true;
}
}
if (options == null) {
return null;
}
- for (Options opt: options) {
+ for (Options opt : options) {
if (DESTPORT_KEY.equals(opt.getOption())) {
return opt.getValue();
}
}
/**
- * Return the {@link List<Options>} valid for this tunnel type
+ * Return the list of {@link Options} valid for this tunnel type
*
- * @return {@link List<Options>} for the tunnel, null if not supported
+ * @return list of {@link Options} for the tunnel, null if not supported
*/
public abstract List<Options> getOptions();
* Check if a TerminationPoint is a tunnel port that meets
* requirements
*
- * @param tpAugmentation
+ * @param tpAugmentation the {@link OvsdbTerminationPointAugmentation}
* @return String of the tunnel port name (null if not found)
*/
public abstract boolean isValidTunnelPort(OvsdbTerminationPointAugmentation tpAugmentation);
* Get the DPID and OpenFlow port of the bridge that owns the {@link TerminationPoint} in the
* provider mapping
*
- * @return
+ * @return the DPID and OpenFlow port of the bridge that owns the {@link TerminationPoint} in
+ * the provider mapping
*/
private static String getInventoryNodeId(OvsdbNodeAugmentation ovsdbNode, String externalPortName) {
List<ManagedNodeEntry> ovsdbNodes = ovsdbNode.getManagedNodeEntry();
* removes attached tunnels (namely Vxlan-type) from OVSDB bridge;
* else removes location info from TP
*
- * @param ovsdbBridge {@link OvsdbBridgeAugmentation}
+ * @param nodeId {@link NodeId}
* @param ovsdbTp {@link OvsdbTerminationPointAugmentation}
* @param ovsdbTpIid termination point's IID {@link InstanceIdentifier}
*/
* Get the Neutron Port UUID from an {@link OvsdbTerminationPointAugmentation}.
* The Neutron Port UUID is stored as an "external-id" in the termination point.
*
- * @param ovsdbTp The OVSDB Termination Point augmentation
+ * @param ovsdbTp The {@link OvsdbTerminationPointAugmentation}
* @return The String representation of the Neutron Port UUID, null if not present
*/
private String getNeutronPortUuid(OvsdbTerminationPointAugmentation ovsdbTp) {
/*
- * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
private static final String DESTPORT_KEY = "dst_port";
private static final String DESTPORT_VALUE = VXLAN_GPE_PORT_NUMBER.toString();
-
- private final PortNumber udpTunnelPort;
+ private final PortNumber udpTunnelPort;
private final List<Options> optionsList;
private static final Class<? extends TunnelTypeBase> tunnelType = TunnelTypeVxlanGpe.class;
- public VxlanGpeTunnelType() {
- optionsList = createOptionsList(optsMap);
- udpTunnelPort = new PortNumber(VXLAN_GPE_PORT_NUMBER);
- }
+ public VxlanGpeTunnelType() {
+ optionsList = createOptionsList(optsMap);
+ udpTunnelPort = new PortNumber(VXLAN_GPE_PORT_NUMBER);
+ }
- private static final Map<String, String> optsMap;
- static {
+ private static final Map<String, String> optsMap;
+ static {
Map<String, String> opts = new HashMap<String, String>();
opts.put(VNID_KEY, VNID_VALUE);
opts.put(REMOTE_IP_KEY, REMOTE_IP_VALUE);
optsMap = Collections.unmodifiableMap(opts);
}
- @Override
+ @Override
public List<Options> getOptions() {
return optionsList;
}
- @Override
+ @Override
public Class<? extends TunnelTypeBase> getTunnelType() {
return tunnelType;
}
- @Override
+ @Override
public PortNumber getPortNumber() {
return udpTunnelPort;
}
- @Override
+ @Override
public String getTunnelPrefix() {
return VXLAN_GPE_TUNNEL_PREFIX;
- }
+ }
- /**
+ /**
* Check if a TerminationPoint is a tunnel port that meets
* requirements for the Service Function Chaining with NSH
* encapsulation. The tunnel port must support setting the
* VNID, destination Tunnel IP address, NSI, NSP, and all
* four NSHC fields from flow-mods, and use VXLAN encapsulation.
*
- * @param tpAugmentation
+ * @param tpAugmentation the {@link OvsdbTerminationPointAugmentation}
* @return true if it can be an SFC NSH tunnel port, false if not
*/
- @Override
+ @Override
public boolean isValidTunnelPort(OvsdbTerminationPointAugmentation tpAugmentation) {
if (hasTunnelOptions(tpAugmentation, optsMap)
&& InterfaceTypeVxlan.class.equals(tpAugmentation.getInterfaceType())
/*
- * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
- *
+ * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
+ *
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbTerminationPointAugmentation;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.Options;
-
public class VxlanTunnelType extends AbstractTunnelType {
+
private static final Map<String, String> optsMap;
private static final Class<? extends TunnelTypeBase> tunnelType = TunnelTypeVxlan.class;
private static final Integer VXLAN_PORT_NUMBER = 4789;
private final PortNumber udpTunnelPort;
private final List<Options> optionsList;
- static {
+ static {
Map<String, String> opts = new HashMap<String, String>();
opts.put(VNID_KEY, VNID_VALUE);
opts.put(REMOTE_IP_KEY, REMOTE_IP_VALUE);
optsMap = Collections.unmodifiableMap(opts);
}
- public VxlanTunnelType() {
- optionsList = createOptionsList(optsMap);
- udpTunnelPort = new PortNumber(VXLAN_PORT_NUMBER);
- }
+ public VxlanTunnelType() {
+ optionsList = createOptionsList(optsMap);
+ udpTunnelPort = new PortNumber(VXLAN_PORT_NUMBER);
+ }
- @Override
+ @Override
public List<Options> getOptions() {
return optionsList;
}
- @Override
+ @Override
public Class<? extends TunnelTypeBase> getTunnelType() {
return tunnelType;
}
- @Override
+ @Override
public PortNumber getPortNumber() {
return udpTunnelPort;
}
- @Override
+ @Override
public String getTunnelPrefix() {
return VXLAN_TUNNEL_PREFIX;
- }
+ }
/**
* Check if a TerminationPoint is a tunnel port that meets
* setting the VNID and destination Tunnel IP address, and
* use VXLAN encapsulation.
*
- * @param tpAugmentation
+ * @param tpAugmentation the {@link OvsdbTerminationPointAugmentation}
* @return true if it can be the OfOverlay tunnel port, false if not
*/
- @Override
+ @Override
public boolean isValidTunnelPort(OvsdbTerminationPointAugmentation tpAugmentation) {
if (hasTunnelOptions(tpAugmentation, optsMap)
&& InterfaceTypeVxlan.class.equals(tpAugmentation.getInterfaceType())
- && (getDestPort(tpAugmentation) == null
- || getDestPort(tpAugmentation).equals(VXLAN_PORT_NUMBER.toString()))) {
+ && (getDestPort(tpAugmentation) == null || getDestPort(tpAugmentation).equals(
+ VXLAN_PORT_NUMBER.toString()))) {
return true;
}
return false;
* Look up the {@link Endpoint} from the Endpoint Registry.
*
* @param epKey The {@link EndpointKey} to look up
- * @param dataBroker The {@link DataBroker} to use for the transaction
+ * @param transaction The {@link ReadOnlyTransaction}
* @return The corresponding {@link Endpoint}, null if not found
*/
public static Endpoint lookupEndpoint(EndpointKey epKey, ReadOnlyTransaction transaction) {
* Note this updates the datastore directly. It does not use the Endpoint RPC, as this has
* unfortunate side-effects on EndpointL3 augmentations.
*
- * @param endpoint
- * @param nodeIdString
- * @param nodeConnectorIdString
- * @param rwTx
+ * @param endpoint the network endpoint
+ * @param nodeIdString the string representation of the inventory NodeId
+ * @param nodeConnectorIdString the string representation of the inventory NodeConnectorId
+ * @param rwTx a reference to ReadWriteTransaction object
*/
public static void updateEndpointWithLocation(Endpoint endpoint, String nodeIdString,
String nodeConnectorIdString, ReadWriteTransaction rwTx) {
* augmentation, converting that to a Long, and prepending it with the
* "openflow:" prefix.
*
- * @param ovsdbBridge The OVSDB bridge augmentation
+ * @param ovsdbBridge The {@link OvsdbBridgeAugmentation}
+ * @param ovsdbTpIid the {@link OvsdbTerminationPointAugmentation}
+ * @param dataBroker the {@link DataBroker}
* @return String representation of the Inventory NodeId, null if it fails
*/
public static String getInventoryNodeIdString(OvsdbBridgeAugmentation ovsdbBridge,
*
* @param inventoryNodeId The string representation of the Inventory NodeId
* @param ovsdbTp The {@link OvsdbTerminationPointAugmentation}
+ * @param tpIid the InstanceIdentifier for OvsdbTerminationPointAugmentation
+ * @param dataBroker the {@link DataBroker}
* @return String representation of the Inventory NodeConnectorId, null if it fails
*/
public static String getInventoryNodeConnectorIdString(String inventoryNodeId,
* Inventory Node, and verify that the tunnel types we need
* are present
*
+ * @param nodeIdString The inventory node id string
+ * @param requiredTunnelTypes the list of tunnel types
+ * @param dataBroker the {@link DataBroker}
* @return true if tunnel types are present, false otherwise
*/
public static boolean checkOfOverlayConfig(String nodeIdString, List<AbstractTunnelType> requiredTunnelTypes,
}
/**
- * Update the {@link OfOverlayConfig} of an Inventory Node
+ * Update the {@link OfOverlayNodeConfig} of an Inventory Node
* using the new tunnel state.
*
- * @param ip
- * @param nodeIdString
- * @param nodeConnectorIdString
- * @param tunnelType
- * @param dataBroker
+ * @param ip the ipaddress
+ * @param nodeIdString the string representation of the inventory NodeId
+ * @param nodeConnectorIdString the string representation of the inventory NodeConnectorId
+ * @param tunnelType the tunnel type
+ * @param dataBroker the {@link DataBroker}
*/
public static void updateOfOverlayConfig(IpAddress ip, String nodeIdString, String nodeConnectorIdString,
AbstractTunnelType tunnelType, DataBroker dataBroker) {
/**
* Look up the {@link OvsdbBridgeAugmentation} from the data store
- * given a child {@link InstanceIdentifier<OvsdbTerminationPointAugmentation>}
+ * given a child {@link InstanceIdentifier} of {@link OvsdbTerminationPointAugmentation}
*
- * @param tpId The InstanceIdentifier for a child TerminationPoint augmentation
+ * @param tpIid The InstanceIdentifier for a child TerminationPoint augmentation
+ * @param dataBroker the {@link DataBroker}
* @return the {@link OvsdbBridgeAugmentation}, null if the augmentation isn't present
*/
public static OvsdbBridgeAugmentation getOvsdbBridgeFromTerminationPoint(
/**
* Get the manager node for this bridge node
*
- * @param bridge
- * @param dataBroker
+ * @param bridge the bridge node
+ * @param dataBroker the {@link DataBroker}
* @return The {@link OvsdbBridgeAugmentation} for the manager node, null
* if not found or if it already is the manager node
*/
* Use OVSDB CRUD to create any missing tunnels on a given
* Inventory Node.
*
- * @param nodeIid
- * @param node
- * @param tunnelType
+ * @param nodeIid the node instance identifier
+ * @param node the inventory node
+ * @param tunnelType the tunnel type
+ * @param dataBroker the {@link DataBroker}
*/
public static void createTunnelPort(InstanceIdentifier<Node> nodeIid,
Node node, AbstractTunnelType tunnelType, DataBroker dataBroker) {
* Get the endpoints container from datastore.
* Note: There are maps maintained by listener when higher performance is required.
*
- * @param
* @return the {@link Endpoints}
*/
public Endpoints getEndpointsFromDataStore() {
/**
* Return all L3Prefix Endpoints from datastore.
*
- * @param
* @return the {@link EndpointL3Prefix}
*/
public Collection<EndpointL3Prefix> getEndpointsL3Prefix() {
/**
* Return all L3Endpoints from datastore.
*
- * @param
* @return the {@link EndpointL3}
*/
public Collection<EndpointL3> getL3Endpoints() {
/**
* Update the endpointL3 indexes. Set newEp to null to remove.
+ *
+ * @param oldL3Ep the old L3 endpoint
+ * @param newL3Ep the new L3 endpoint
*/
protected synchronized void updateEndpointL3(EndpointL3 oldL3Ep, EndpointL3 newL3Ep) {
// TODO Bug 3543 - complete
/**
* Update the endpoint indexes. Set newEp to null to remove.
+ *
+ * @param oldEp the old endpoint
+ * @param newEp the new endpoint
*/
protected synchronized void updateEndpoint(Endpoint oldEp, Endpoint newEp) {
// TODO Be alagalah From Helium only keep track of endpoints that are
}
/**
- * @param tableOffset - new offset value
- * @return ListenableFuture<List> - to indicate that tables have been synced
+ * @param tableOffset the new offset value
+ * @return {@link ListenableFuture} to indicate that tables have been synced
*/
public ListenableFuture<Void> changeOpenFlowTableOffset(final short tableOffset) {
try {
/**
* Return the first hop information for the Rendered Service Path
*
- * @param rspName
- * @return
+ * @param rspName the Rendered Service Path
+ * @return the first hop information for the Rendered Service Path
*/
public RenderedServicePathFirstHop getRspFirstHop(String rspName) {
return rspMap.get(rspName);
}
/**
+ *
* @param value hardware length in Bytes
+ * @return {@link Arp}
*/
public Arp setHardwareLength(short value) {
hdrFieldsMap.put(HLEN, Unpooled.buffer(1).writeByte(value).array());
}
/**
+ *
* @param value protocol length in Bytes
+ * @return {@link Arp}
*/
public Arp setProtocolLength(short value) {
hdrFieldsMap.put(PLEN, Unpooled.buffer(1).writeByte(value).array());
/**
* Creates {@link EthernetMatch} containing ARP ether-type and the given destination MAC address
+ *
+ * @param destinationMacAddress the destination MAC address
+ * @return {@link EthernetMatch}
*/
public static EthernetMatch createEthernetMatch(MacAddress destinationMacAddress) {
return new EthernetMatchBuilder().setEthernetType(
/**
* Creates {@link ArpMatch} containing Reply ARP operation, THA and TPA for the given target
* address and SPA for the given sender protocol address
+ *
+ * @param targetAddress the target address
+ * @param senderProtocolAddress the sender protocol address
+ * @return {@link ArpMatch}
*/
public static ArpMatch createArpMatch(ArpMessageAddress targetAddress, Ipv4Address senderProtocolAddress) {
return new ArpMatchBuilder().setArpOp(ArpOperation.REPLY.intValue())
* Creates {@link Action} representing output to the controller
*
* @param order the order for the action
+ * @return {@link Action}
*/
public static Action createSendToControllerAction(int order) {
return new ActionBuilder().setOrder(order)
/**
* Returns Ethernet and ARP in readable string format
+ *
+ * @param eth {@link Ethernet}
+ * @return returns Ethernet and ARP in readable string format
*/
public static String getArpFrameToStringFormat(Ethernet eth) {
String ethernetString = "Ethernet [getEtherType()="
/**
* Returns ARP in readable string format
+ *
+ * @param arp {@link Arp}
+ * @return returns ARP in readable string format
*/
public static String getArpToStringFormat(Arp arp) {
try {
/**
* Sync flow state using the flow map
- * @throws Exception
+ *
+ * @param nodeId the node id
+ * @param policyInfo the current policy snapshot
+ * @param ofWriter the {@link OfWriter}
+ * @throws Exception throws all exception
*/
public abstract void sync(NodeId nodeId, PolicyInfo policyInfo, OfWriter ofWriter) throws Exception;
/**
* Get the table ID being manipulated
+ *
+ * @return the table id
*/
public abstract short getTableId();
/**
* Get a base flow builder with some common features already set
+ *
+ * @return {@link FlowBuilder}
*/
protected FlowBuilder base() {
return new FlowBuilder()
/**
* Write a drop flow for the given ethertype at the given priority.
* If the ethertype is null, then drop all traffic
+ *
+ * @param priority the priority
+ * @param etherType the ethertype
+ * @param tableId the table id
+ * @return a drop flow for the given ethertype at the given priority.
*/
public Flow dropFlow(Integer priority, Long etherType, Short tableId) {
FlowId flowid;
/**
* Creates an Instance Identifier (path) for node with specified id
*
- * @param nodeId
- * @return
+ * @param nodeId the ID of the node
+ * @return the {@link InstanceIdentifier}
*/
public static final InstanceIdentifier<Node> createNodePath(final NodeId nodeId) {
return InstanceIdentifier.builder(Nodes.class).child(Node.class, new NodeKey(nodeId)).build();
* Creates a path for particular flow, by appending flow-specific information
* to table path.
*
- * @param table
- * @param flowKey
- * @return
+ * @param table the table iid
+ * @param flowKey the flow key
+ * @return the {@link InstanceIdentifier}
*/
public static InstanceIdentifier<Flow> createFlowPath(final InstanceIdentifier<Table> table, final FlowKey flowKey) {
return table.child(Flow.class, flowKey);
* Creates a path for particular flow, by appending flow-specific information
* to table path.
*
- * @param table
- * @param flowId
- * @return
+ * @param table the table iid
+ * @param flowId the flow id
+ * @return the {@link InstanceIdentifier}
*/
public static InstanceIdentifier<Flow> createFlowPath(final InstanceIdentifier<Table> table, final FlowId flowId) {
return createFlowPath(table, new FlowKey(flowId));
/**
* Update the relevant flow table for the node
* @param nodeId the node to update
- * @param policyInfo
- * @param ofWriter
- * @throws Exception
+ * @param policyInfo the current policy snapshot
+ * @param ofWriter the {@link OfWriter}
+ * @throws Exception throws all exception
*/
public abstract void update(NodeId nodeId,
PolicyInfo policyInfo,
* Creates an ordinal for the OfOverlay pipeline comparison, based on @TenantId and a
* uniqueID (UUID) associated with any other attribute.
*
- * @param tenantId
- * @param id
- * @return
- * @throws Exception
+ * @param tenantId the tenant id
+ * @param id a unique id
+ * @return the ordinal
+ * @throws Exception throws all exception
*/
public static int getContextOrdinal(final TenantId tenantId, final UniqueId id) throws Exception {
if (tenantId == null || id == null)
* @param destNode
* destination node ID
* @return the 32-bit ordinal value
- * @throws Exception
+ * @throws Exception throws all exception
*/
public static int getContextOrdinal(NodeId destNode) throws Exception {
* @param sw the ID for the switch
*/
public void switchRemoved(NodeId sw);
-
- /**
+
+ /**
* Indicated that the switch configuration, tunnel port, or external ports
* have changed
- * @param sw
+ * @param sw the ID for the switch
*/
public void switchUpdated(NodeId sw);
}
/**
* Constructor used for tests
+ *
+ * @param node the node id
+ * @param tunnelPort the tunnel port
+ * @param externalPorts the set of expternal ports
+ * @param nodeConfig the ofoverlay node config
*/
public SwitchState(NodeId node, NodeConnectorId tunnelPort, Set<NodeConnectorId> externalPorts,
OfOverlayNodeConfig nodeConfig) {
* Construct a set of actions that will apply to the traffic. Augment
* the existing list of actions or add new actions. It's important
* that the order of the returned list be consistent however
+ *
* @param actions The existing actions
* @param params the parameters for the action instance
- * @param direction
+ * @param order the order of the list of actions
+ * @param netElements the network elements
+ * @param policyPair the {@link PolicyPair}
+ * @param ofWriter the {@link OfWriter}
+ * @param ctx the OfContext
+ * @param direction the direction of traffic
* @return the updated list of actions (may be a different length)
*/
public abstract List<ActionBuilder> updateAction(List<ActionBuilder> actions,
}
/**
- * May return null.
+ * Return the IpProtocol value. May return null.
+ * @param params the parameters of classifier-instance inserted by user
+ * @return the IpProtocol value
*/
public static Long getIpProtoValue(Map<String, ParameterValue> params) {
if (params == null) {
SfcNshHeader sfcNshHeader = new SfcNshHeader(this);
return sfcNshHeader;
}
+
/**
* SfcNshHeaderBuilder requires following in constructor:
- *
- * @param nshNspToChain
- * @param nshNsiToChain
- * @param nshTunIpDst
*/
public SfcNshHeaderBuilder() {