Package org.onosproject.net.flow
Class DefaultTrafficTreatment.Builder
- java.lang.Object
-
- org.onosproject.net.flow.DefaultTrafficTreatment.Builder
-
- All Implemented Interfaces:
TrafficTreatment.Builder
- Enclosing class:
- DefaultTrafficTreatment
public static final class DefaultTrafficTreatment.Builder extends java.lang.Object implements TrafficTreatment.Builder
Builds a list of treatments following the following order. Modifications -> Group -> Output (including drop)
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description DefaultTrafficTreatment.Builderadd(Instruction instruction)Adds an instruction to the builder.TrafficTreatment.BuilderaddTreatment(TrafficTreatment treatment)Add all instructions from another treatment.TrafficTreatmentbuild()Builds an immutable traffic treatment descriptor.DefaultTrafficTreatment.BuildercopyTtlIn()Copy the TTL to inner protocol layer.DefaultTrafficTreatment.BuildercopyTtlOut()Copy the TTL to outer protocol layer.DefaultTrafficTreatment.BuilderdecMplsTtl()Decrement MPLS TTL.DefaultTrafficTreatment.BuilderdecNwTtl()Decrement the TTL in IP header by one.DefaultTrafficTreatment.Builderdeferred()Any instructions followed by this method call will be deferred.DefaultTrafficTreatment.Builderdrop()Add a NOACTION when DROP instruction is explicitly specified.TrafficTreatment.Builderextension(ExtensionTreatment extension, DeviceId deviceId)Uses an extension treatment.DefaultTrafficTreatment.Buildergroup(GroupId groupId)Sets the group ID.DefaultTrafficTreatment.Builderimmediate()Any instructions followed by this method call will be immediate.TrafficTreatment.Buildermeter(MeterId meterId)Sets a meter to be used by this flow.DefaultTrafficTreatment.BuildernotWipeDeferred()the instruction to clear not wipe the deferred instructions set.DefaultTrafficTreatment.BuilderpiTableAction(PiTableAction piTableAction)Sets the protocol independent table action.DefaultTrafficTreatment.BuilderpopMpls()Pops MPLS ether type.DefaultTrafficTreatment.BuilderpopMpls(EthType etherType)Pops MPLS ether type and set the new ethertype.DefaultTrafficTreatment.BuilderpopVlan()Pops outermost VLAN tag.DefaultTrafficTreatment.Builderpunt()Adds a punt-to-controller instruction.DefaultTrafficTreatment.BuilderpushMpls()Push MPLS ether type.DefaultTrafficTreatment.BuilderpushVlan()Pushes a new VLAN tag.DefaultTrafficTreatment.BuilderpushVlan(EthType ethType)Pushes a new VLAN tag using the supplied Ethernet type.DefaultTrafficTreatment.BuildersetArpOp(short op)Sets the arp operation.DefaultTrafficTreatment.BuildersetArpSha(MacAddress addr)Sets the arp src mac address.DefaultTrafficTreatment.BuildersetArpSpa(IpAddress addr)Sets the arp src ip address.DefaultTrafficTreatment.BuildersetEthDst(MacAddress addr)Sets the dst l2 address.DefaultTrafficTreatment.BuildersetEthSrc(MacAddress addr)Sets the src l2 address.TrafficTreatment.BuildersetIpDscp(byte dscpValue)Sets the IP DSCP field.DefaultTrafficTreatment.BuildersetIpDst(IpAddress addr)Sets the dst l3 address.DefaultTrafficTreatment.BuildersetIpSrc(IpAddress addr)Sets the src l3 address.DefaultTrafficTreatment.BuildersetMpls(MplsLabel mplsLabel)Sets the mpls label.DefaultTrafficTreatment.BuildersetMplsBos(boolean mplsBos)Sets the mpls bottom-of-stack indicator bit.DefaultTrafficTreatment.BuildersetOutput(PortNumber number)Set the output port.DefaultTrafficTreatment.BuildersetQueue(long queueId)Sets the Queue ID.DefaultTrafficTreatment.BuildersetQueue(long queueId, PortNumber port)Sets the Queue ID for a specific port.TrafficTreatment.BuildersetTcpDst(TpPort port)Sets the dst TCP port.TrafficTreatment.BuildersetTcpSrc(TpPort port)Sets the src TCP port.DefaultTrafficTreatment.BuildersetTunnelId(long tunnelId)Sets the tunnel id.TrafficTreatment.BuildersetUdpDst(TpPort port)Sets the dst UDP port.TrafficTreatment.BuildersetUdpSrc(TpPort port)Sets the src UDP port.DefaultTrafficTreatment.BuildersetVlanId(VlanId id)Sets the vlan id.DefaultTrafficTreatment.BuildersetVlanPcp(java.lang.Byte pcp)Sets the vlan priority.TrafficTreatment.BuilderstatTrigger(java.util.Map<StatTriggerField,java.lang.Long> statTriggerFieldMap, StatTriggerFlag statTriggerFlag)Add stat trigger instruction.DefaultTrafficTreatment.Buildertransition(java.lang.Integer tableId)Sets the next table id to transition to.DefaultTrafficTreatment.BuilderwipeDeferred()Instructs the device to clear the deferred instructions set.DefaultTrafficTreatment.BuilderwriteMetadata(long metadata, long metadataMask)Writes metadata to associate with a packet.
-
-
-
Method Detail
-
add
public DefaultTrafficTreatment.Builder add(Instruction instruction)
Description copied from interface:TrafficTreatment.BuilderAdds an instruction to the builder.- Specified by:
addin interfaceTrafficTreatment.Builder- Parameters:
instruction- an instruction- Returns:
- a treatment builder
-
drop
public DefaultTrafficTreatment.Builder drop()
Add a NOACTION when DROP instruction is explicitly specified.- Specified by:
dropin interfaceTrafficTreatment.Builder- Returns:
- the traffic treatment builder
-
punt
public DefaultTrafficTreatment.Builder punt()
Description copied from interface:TrafficTreatment.BuilderAdds a punt-to-controller instruction.- Specified by:
puntin interfaceTrafficTreatment.Builder- Returns:
- a treatment builder
-
setOutput
public DefaultTrafficTreatment.Builder setOutput(PortNumber number)
Description copied from interface:TrafficTreatment.BuilderSet the output port.- Specified by:
setOutputin interfaceTrafficTreatment.Builder- Parameters:
number- the out port- Returns:
- a treatment builder
-
setEthSrc
public DefaultTrafficTreatment.Builder setEthSrc(MacAddress addr)
Description copied from interface:TrafficTreatment.BuilderSets the src l2 address.- Specified by:
setEthSrcin interfaceTrafficTreatment.Builder- Parameters:
addr- a macaddress- Returns:
- a treatment builder
-
setEthDst
public DefaultTrafficTreatment.Builder setEthDst(MacAddress addr)
Description copied from interface:TrafficTreatment.BuilderSets the dst l2 address.- Specified by:
setEthDstin interfaceTrafficTreatment.Builder- Parameters:
addr- a macaddress- Returns:
- a treatment builder
-
setVlanId
public DefaultTrafficTreatment.Builder setVlanId(VlanId id)
Description copied from interface:TrafficTreatment.BuilderSets the vlan id.- Specified by:
setVlanIdin interfaceTrafficTreatment.Builder- Parameters:
id- a vlanid- Returns:
- a treatment builder
-
setVlanPcp
public DefaultTrafficTreatment.Builder setVlanPcp(java.lang.Byte pcp)
Description copied from interface:TrafficTreatment.BuilderSets the vlan priority.- Specified by:
setVlanPcpin interfaceTrafficTreatment.Builder- Parameters:
pcp- a vlan priority- Returns:
- a treatment builder
-
setIpSrc
public DefaultTrafficTreatment.Builder setIpSrc(IpAddress addr)
Description copied from interface:TrafficTreatment.BuilderSets the src l3 address.- Specified by:
setIpSrcin interfaceTrafficTreatment.Builder- Parameters:
addr- an ip- Returns:
- a treatment builder
-
setIpDst
public DefaultTrafficTreatment.Builder setIpDst(IpAddress addr)
Description copied from interface:TrafficTreatment.BuilderSets the dst l3 address.- Specified by:
setIpDstin interfaceTrafficTreatment.Builder- Parameters:
addr- an ip- Returns:
- a treatment builder
-
decNwTtl
public DefaultTrafficTreatment.Builder decNwTtl()
Description copied from interface:TrafficTreatment.BuilderDecrement the TTL in IP header by one.- Specified by:
decNwTtlin interfaceTrafficTreatment.Builder- Returns:
- a treatment builder
-
copyTtlIn
public DefaultTrafficTreatment.Builder copyTtlIn()
Description copied from interface:TrafficTreatment.BuilderCopy the TTL to inner protocol layer.- Specified by:
copyTtlInin interfaceTrafficTreatment.Builder- Returns:
- a treatment builder
-
copyTtlOut
public DefaultTrafficTreatment.Builder copyTtlOut()
Description copied from interface:TrafficTreatment.BuilderCopy the TTL to outer protocol layer.- Specified by:
copyTtlOutin interfaceTrafficTreatment.Builder- Returns:
- a treatment builder
-
pushMpls
public DefaultTrafficTreatment.Builder pushMpls()
Description copied from interface:TrafficTreatment.BuilderPush MPLS ether type.- Specified by:
pushMplsin interfaceTrafficTreatment.Builder- Returns:
- a treatment builder
-
popMpls
public DefaultTrafficTreatment.Builder popMpls()
Description copied from interface:TrafficTreatment.BuilderPops MPLS ether type.- Specified by:
popMplsin interfaceTrafficTreatment.Builder- Returns:
- a treatment builder
-
popMpls
public DefaultTrafficTreatment.Builder popMpls(EthType etherType)
Description copied from interface:TrafficTreatment.BuilderPops MPLS ether type and set the new ethertype.- Specified by:
popMplsin interfaceTrafficTreatment.Builder- Parameters:
etherType- an ether type- Returns:
- a treatment builder
-
setMpls
public DefaultTrafficTreatment.Builder setMpls(MplsLabel mplsLabel)
Description copied from interface:TrafficTreatment.BuilderSets the mpls label.- Specified by:
setMplsin interfaceTrafficTreatment.Builder- Parameters:
mplsLabel- MPLS label- Returns:
- a treatment builder
-
setMplsBos
public DefaultTrafficTreatment.Builder setMplsBos(boolean mplsBos)
Description copied from interface:TrafficTreatment.BuilderSets the mpls bottom-of-stack indicator bit.- Specified by:
setMplsBosin interfaceTrafficTreatment.Builder- Parameters:
mplsBos- boolean to set BOS=1 (true) or BOS=0 (false)- Returns:
- a treatment builder.
-
decMplsTtl
public DefaultTrafficTreatment.Builder decMplsTtl()
Description copied from interface:TrafficTreatment.BuilderDecrement MPLS TTL.- Specified by:
decMplsTtlin interfaceTrafficTreatment.Builder- Returns:
- a treatment builder
-
group
public DefaultTrafficTreatment.Builder group(GroupId groupId)
Description copied from interface:TrafficTreatment.BuilderSets the group ID.- Specified by:
groupin interfaceTrafficTreatment.Builder- Parameters:
groupId- group ID- Returns:
- a treatment builder
-
setQueue
public DefaultTrafficTreatment.Builder setQueue(long queueId)
Description copied from interface:TrafficTreatment.BuilderSets the Queue ID.- Specified by:
setQueuein interfaceTrafficTreatment.Builder- Parameters:
queueId- a queue ID- Returns:
- a treatment builder
-
setQueue
public DefaultTrafficTreatment.Builder setQueue(long queueId, PortNumber port)
Description copied from interface:TrafficTreatment.BuilderSets the Queue ID for a specific port.- Specified by:
setQueuein interfaceTrafficTreatment.Builder- Parameters:
queueId- a queue IDport- a port number- Returns:
- a treatment builder
-
meter
public TrafficTreatment.Builder meter(MeterId meterId)
Description copied from interface:TrafficTreatment.BuilderSets a meter to be used by this flow.- Specified by:
meterin interfaceTrafficTreatment.Builder- Parameters:
meterId- a meter id- Returns:
- a treatment builder
-
popVlan
public DefaultTrafficTreatment.Builder popVlan()
Description copied from interface:TrafficTreatment.BuilderPops outermost VLAN tag.- Specified by:
popVlanin interfaceTrafficTreatment.Builder- Returns:
- a treatment builder
-
pushVlan
public DefaultTrafficTreatment.Builder pushVlan()
Description copied from interface:TrafficTreatment.BuilderPushes a new VLAN tag.- Specified by:
pushVlanin interfaceTrafficTreatment.Builder- Returns:
- a treatment builder
-
pushVlan
public DefaultTrafficTreatment.Builder pushVlan(EthType ethType)
Description copied from interface:TrafficTreatment.BuilderPushes a new VLAN tag using the supplied Ethernet type.- Specified by:
pushVlanin interfaceTrafficTreatment.Builder- Parameters:
ethType- ethernet type- Returns:
- a treatment builder
-
transition
public DefaultTrafficTreatment.Builder transition(java.lang.Integer tableId)
Description copied from interface:TrafficTreatment.BuilderSets the next table id to transition to.- Specified by:
transitionin interfaceTrafficTreatment.Builder- Parameters:
tableId- the table table- Returns:
- a treatement builder
-
immediate
public DefaultTrafficTreatment.Builder immediate()
Description copied from interface:TrafficTreatment.BuilderAny instructions followed by this method call will be immediate.- Specified by:
immediatein interfaceTrafficTreatment.Builder- Returns:
- a treatment builder
-
deferred
public DefaultTrafficTreatment.Builder deferred()
Description copied from interface:TrafficTreatment.BuilderAny instructions followed by this method call will be deferred.- Specified by:
deferredin interfaceTrafficTreatment.Builder- Returns:
- a treatment builder
-
wipeDeferred
public DefaultTrafficTreatment.Builder wipeDeferred()
Description copied from interface:TrafficTreatment.BuilderInstructs the device to clear the deferred instructions set.- Specified by:
wipeDeferredin interfaceTrafficTreatment.Builder- Returns:
- a treatment builder
-
notWipeDeferred
public DefaultTrafficTreatment.Builder notWipeDeferred()
Description copied from interface:TrafficTreatment.Builderthe instruction to clear not wipe the deferred instructions set.- Specified by:
notWipeDeferredin interfaceTrafficTreatment.Builder- Returns:
- a treatment builder
-
writeMetadata
public DefaultTrafficTreatment.Builder writeMetadata(long metadata, long metadataMask)
Description copied from interface:TrafficTreatment.BuilderWrites metadata to associate with a packet.new_metadata = (old_metadata & ̃mask) | (value & mask)- Specified by:
writeMetadatain interfaceTrafficTreatment.Builder- Parameters:
metadata- the metadata to writemetadataMask- the masked bits for the value- Returns:
- a treatment builder
-
setTunnelId
public DefaultTrafficTreatment.Builder setTunnelId(long tunnelId)
Description copied from interface:TrafficTreatment.BuilderSets the tunnel id.- Specified by:
setTunnelIdin interfaceTrafficTreatment.Builder- Parameters:
tunnelId- a tunnel id- Returns:
- a treatment builder
-
setTcpSrc
public TrafficTreatment.Builder setTcpSrc(TpPort port)
Description copied from interface:TrafficTreatment.BuilderSets the src TCP port.- Specified by:
setTcpSrcin interfaceTrafficTreatment.Builder- Parameters:
port- a port number- Returns:
- a treatment builder
-
setTcpDst
public TrafficTreatment.Builder setTcpDst(TpPort port)
Description copied from interface:TrafficTreatment.BuilderSets the dst TCP port.- Specified by:
setTcpDstin interfaceTrafficTreatment.Builder- Parameters:
port- a port number- Returns:
- a treatment builder
-
setUdpSrc
public TrafficTreatment.Builder setUdpSrc(TpPort port)
Description copied from interface:TrafficTreatment.BuilderSets the src UDP port.- Specified by:
setUdpSrcin interfaceTrafficTreatment.Builder- Parameters:
port- a port number- Returns:
- a treatment builder
-
setUdpDst
public TrafficTreatment.Builder setUdpDst(TpPort port)
Description copied from interface:TrafficTreatment.BuilderSets the dst UDP port.- Specified by:
setUdpDstin interfaceTrafficTreatment.Builder- Parameters:
port- a port number- Returns:
- a treatment builder
-
setArpSpa
public DefaultTrafficTreatment.Builder setArpSpa(IpAddress addr)
Description copied from interface:TrafficTreatment.BuilderSets the arp src ip address.- Specified by:
setArpSpain interfaceTrafficTreatment.Builder- Parameters:
addr- an ip- Returns:
- a treatment builder
-
setArpSha
public DefaultTrafficTreatment.Builder setArpSha(MacAddress addr)
Description copied from interface:TrafficTreatment.BuilderSets the arp src mac address.- Specified by:
setArpShain interfaceTrafficTreatment.Builder- Parameters:
addr- a macaddress- Returns:
- a treatment builder
-
setArpOp
public DefaultTrafficTreatment.Builder setArpOp(short op)
Description copied from interface:TrafficTreatment.BuilderSets the arp operation.- Specified by:
setArpOpin interfaceTrafficTreatment.Builder- Parameters:
op- the value of arp operation.- Returns:
- a treatment builder.
-
piTableAction
public DefaultTrafficTreatment.Builder piTableAction(PiTableAction piTableAction)
Description copied from interface:TrafficTreatment.BuilderSets the protocol independent table action.- Specified by:
piTableActionin interfaceTrafficTreatment.Builder- Parameters:
piTableAction- protocol-independent table action- Returns:
- a treatment builder.
-
setIpDscp
public TrafficTreatment.Builder setIpDscp(byte dscpValue)
Description copied from interface:TrafficTreatment.BuilderSets the IP DSCP field.- Specified by:
setIpDscpin interfaceTrafficTreatment.Builder- Parameters:
dscpValue- the DSCP value- Returns:
- a treatment builder.
-
extension
public TrafficTreatment.Builder extension(ExtensionTreatment extension, DeviceId deviceId)
Description copied from interface:TrafficTreatment.BuilderUses an extension treatment.- Specified by:
extensionin interfaceTrafficTreatment.Builder- Parameters:
extension- extension treatmentdeviceId- device ID- Returns:
- a treatment builder
-
statTrigger
public TrafficTreatment.Builder statTrigger(java.util.Map<StatTriggerField,java.lang.Long> statTriggerFieldMap, StatTriggerFlag statTriggerFlag)
Description copied from interface:TrafficTreatment.BuilderAdd stat trigger instruction.- Specified by:
statTriggerin interfaceTrafficTreatment.Builder- Parameters:
statTriggerFieldMap- defines stat trigger constraintsstatTriggerFlag- describes which circumstances that start will be triggered- Returns:
- a treatment builder
-
addTreatment
public TrafficTreatment.Builder addTreatment(TrafficTreatment treatment)
Description copied from interface:TrafficTreatment.BuilderAdd all instructions from another treatment.- Specified by:
addTreatmentin interfaceTrafficTreatment.Builder- Parameters:
treatment- another treatment- Returns:
- a treatment builder
-
build
public TrafficTreatment build()
Description copied from interface:TrafficTreatment.BuilderBuilds an immutable traffic treatment descriptor.If the treatment is empty when build() is called, it will add a default drop rule automatically. For a treatment that is actually empty, use
DefaultTrafficTreatment.emptyTreatment().- Specified by:
buildin interfaceTrafficTreatment.Builder- Returns:
- traffic treatment
-
-