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.