NAME

Brocade::BSC::Openflow::Action

DESCRIPTION

Create openflow action to apply to openflow node. All Actions may have an order parameter passed in the constructor to specify the order in which Actions are evaluated. Action-specific methods and parameters are described under each Action, below.

SUBCLASSES

Subclasses are listed relative to Brocade::BSC::Openflow::Action.

::CopyTTLIn

Copy the TTL from the outermost to the second outermost header with TTL. Copy can be IP->IP, MPLS->MPLS, or MPLS->IP.

::CopyTTLOut

Copy the TTL from the second outermost header to the outermost header with TTL. Copy can be IP->IP, MPLS->MPLS, or IP->MPLS.

::DecMplsTTL

Decrement the MPLS TTL. Only applies to packets with an existing MPLS shim header.

::DecNwTTL

Decrement the IPv4 TTL or the IPv6 hop limit field and update the IP checksum. Only applies to IPv4 and IPv6 packets.

::Drop

Implicit action if no output action encountered.

::FloodAll

Send the packet out all interfaces, excluding the interface on which it arrived.

::Flood

Send the packet out all interfaces, excluding the interface on which it arrived and all ports disabled by the spanning tree protocol.

::Group

Process the packet through the specified group. The exact interpretation depends on the group type.

new
# Parameters: group
#           : group_id
group

Set or retrieve the group for this action.

group_id

Set or retrieve the group ID for this action.

::HwPath

DOC TBD

::Loopback

DOC TBD

::Output

Forward a packet to the specified OpenFlow port. OpenFlow switches must support forwarding to physical ports, switch-defined logical ports, and the required reserved ports.

new
# Parameters: port    - out which to send packet
#           : max_len - maximum packet length
outport

Set or retrieve the output port for this action.

max_len

Set or retrieve the maximum packet length for this action.

::PopMplsHeader

Pop the outermost MPLS tag or shim header from the packet. The specified ethernet type is used as the ethernet type of the resulting packet.

new
# Parameters: eth_type - for ethernet packet after MPLS header removed.
eth_type

Set or retrive the ethernet type for this action.

::PopPBBHeader

Pop the outermost PBB (802.1ah Provider Backbone Bridge) service instance header from the packet.

::PopVlanHeader

Pop the outermost VLAN header from the packet.

::PushMplsHeader

Push a new MPLS shim header onto the packet. The ethernet type for the tag should be either 0x8847 (unicast) or 0x8848 (multicast).

new
# Parameters: eth_type - for the MPLS tag.
eth_type

Set or retrieve the ethernet type for this action.

::PushPBBHeader

Push a new PBB service instance header onto the packet. The ethernet type for the tag should be 0x88e7.

new
# Parameters: eth_type - for the PBB tag.
eth_type

Set or retrieve the ethernet type for this action.

::PushVlanHeader

Push a new VLAN header onto the packet. The ethernet type for the VLAN tag should be 0x8100 (802.1q) or 0x88a8 (802.1ad).

new
# Parameters: eth_type - ethernet type
#           : tag      -
#           : pcp      - priority code point
#           : cfi      - canonical format indicator
#           : vid      - vlan identifier
eth_type

Set or retrieve the ethernet type for this action.

tag

Set or retrieve the vlan tag for this action.

pcp

Set or retrieve the priority code point for this action.

cfi

Set or retrieve the canonical format indicator for this action.

vid

Set or retrieve the vlan identifier for this action.

::SetDlDst

Set Ethernet destination address.

new
# Parameters: mac_addr - destination ethernet address
mac_addr

Set or retrieve the destination ethernet address for this action.

::SetDlSrc

Set Ethernet source address.

new
# Parameters: mac_addr - source ethernet address
mac_addr

Set or retrieve the source ethernet address for this action.

::SetField

DOC TBD

::SetMplsTTL

Replace the existing MPLS TTL. Only applies to packets with an existing MPLS shim header.

new
# Parameters: mpls_ttl - TTL to set
mpls_ttl

Set or retrieve the MPLS TTL for this action.

::SetNwDst

Set the destination IP address.

new
# Parameters: ip_addr
ip_addr

Set or retrieve the [destination] IP address for this action.

::SetNwSrc

Set the source IP address.

new
# Parameters: ip_addr
ip_addr

Set or retrieve the [source] IP address for this action.

::SetNwTTL

Replace the existing IPv4 TTL or IPv6 hop limit and update the IP checksum. Only applies to IPv4 and IPv6 packets.

new
# Parameters: ip_ttl
ip_ttl

Set or retrieve the TTL for this action.

::SetQueue

The set-queue action sets the queue id for a packet. When the packet is forwarded to a port using the output action, the queue id determines which queue attached to this port is used for scheduling and forwarding the packet. Forwarding behavior is dictated by the configuration of the queue and is used to provide basic Quality-of-Service (QoS) support.

new
# Parameters: queue
#           : queue_id
queue

Set or retrieve the queue for this action.

queue_id

Set or retrieve the queue ID for this action.

::SetTcpUdpDst

Set the TCP or UDP destination port.

new
# Parameters: port
port

Set or retrieve the TCP or UDP destination port for this action.

::SetTcpUdpSrc

Set the TCP or UDP source port.

new
# Parameters: port
port

Set or retrieve the TCP or UDP source port for this action.

::SetVlanCfi

The Drop Eligible Indicator (formerly Canonical Format Indicator) may be used alone or in conjunction with the PCP to indicate frames which may be dropped in the presence of congestion.

new
# Parameters: vlan_cfi
vlan_cfi

Set or retrieve the VLAN DEI (CFI) for this action.

::SetVlanId

Set the 802.1q VLAN ID.

new
# Parameters: vid
vid

Set or retrieve the VLAN ID for this action.

::SetVlanPCP

Set the 802.1q VLAN priority.

new

# Parameters: vlan_pcp

vlan_pcp

Set or retrieve the VLAN priority code point for this action.

::StripVlan

Remove the 802.1q VLAN header from the packet.

::SwPath

DOC TBD

LICENCE AND COPYRIGHT

Copyright (c) 2015, BROCADE COMMUNICATIONS SYSTEMS, INC

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.