* ``autoneg``: Change the auto-negotiation parameter.
+show flow control
+~~~~~~~~~~~~~~~~~
+
+show the link flow control parameter on a port::
+
+ testpmd> show port <port_id> flow_ctrl
+
set pfc_ctrl rx
~~~~~~~~~~~~~~~
testpmd> set port (port_id) vf (vf_id) rate (rate_value) queue_mask (queue_mask)
-set port - mirror rule
-~~~~~~~~~~~~~~~~~~~~~~
-
-Set pool or vlan type mirror rule for a port::
-
- testpmd> set port (port_id) mirror-rule (rule_id) \
- (pool-mirror-up|pool-mirror-down|vlan-mirror) \
- (poolmask|vlanid[,vlanid]*) dst-pool (pool_id) (on|off)
-
-Set link mirror rule for a port::
-
- testpmd> set port (port_id) mirror-rule (rule_id) \
- (uplink-mirror|downlink-mirror) dst-pool (pool_id) (on|off)
-
-For example to enable mirror traffic with vlan 0,1 to pool 0::
-
- set port 0 mirror-rule 0 vlan-mirror 0,1 dst-pool 0 on
-
-reset port - mirror rule
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-Reset a mirror rule for a port::
-
- testpmd> reset port (port_id) mirror-rule (rule_id)
-
set flush_rx
~~~~~~~~~~~~
Where:
-* ``valid_only``: A flag indicates if only list valid items(=1) or all itemss(=0).
+* ``valid_only``: A flag indicates if only list valid items(=1) or all items(=0).
Replace a specific or a group of software defined ptype with a new one::
ipv6-udp-ex <string of hex digits \
(variable length, NIC dependent)>)
+port cleanup txq mbufs
+~~~~~~~~~~~~~~~~~~~~~~
+
+To cleanup txq mbufs currently cached by driver::
+
+ testpmd> port cleanup (port_id) txq (queue_id) (free_cnt)
+
+If the value of ``free_cnt`` is 0, driver should free all cached mbufs.
+
Device Functions
----------------
Active Slaves (3): [1 3 4]
Primary: [3]
+show bonding lacp info
+~~~~~~~~~~~~~~~~~~~~~~
+
+Show information about the Link Bonding device in mode 4 (link-aggregation-802.3ad)::
+
+ testpmd> show bonding lacp info (port_id)
Register Functions
------------------
testpmd> del port meter profile (port_id) (profile_id)
+create port policy
+~~~~~~~~~~~~~~~~~~
+
+Create new policy object for the ethernet device::
+
+ testpmd> add port meter policy (port_id) (policy_id) g_actions \
+ {action} y_actions {action} r_actions {action}
+
+where:
+
+* ``policy_id``: policy ID.
+* ``action``: action lists for green/yellow/red colors.
+
+delete port policy
+~~~~~~~~~~~~~~~~~~
+
+Delete policy object for the ethernet device::
+
+ testpmd> del port meter policy (port_id) (policy_id)
+
+where:
+
+* ``policy_id``: policy ID.
+
create port meter
~~~~~~~~~~~~~~~~~
Create new meter object for the ethernet device::
testpmd> create port meter (port_id) (mtr_id) (profile_id) \
- (meter_enable) (g_action) (y_action) (r_action) (stats_mask) (shared) \
+ (policy_id) (meter_enable) (stats_mask) (shared) \
(use_pre_meter_color) [(dscp_tbl_entry0) (dscp_tbl_entry1)...\
(dscp_tbl_entry63)]
* ``mtr_id``: meter object ID.
* ``profile_id``: ID for the meter profile.
+* ``policy_id``: ID for the policy.
* ``meter_enable``: When this parameter has a non-zero value, the meter object
gets enabled at the time of creation, otherwise remains disabled.
-* ``g_action``: Policer action for the packet with green color.
-* ``y_action``: Policer action for the packet with yellow color.
-* ``r_action``: Policer action for the packet with red color.
* ``stats_mask``: Mask of statistics counter types to be enabled for the
meter object.
* ``shared``: When this parameter has a non-zero value, the meter object is
testpmd> set port meter dscp table (port_id) (mtr_id) [(dscp_tbl_entry0) \
(dscp_tbl_entry1)...(dscp_tbl_entry63)]
-set port meter policer action
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Set meter policer action for the ethernet device::
-
- testpmd> set port meter policer action (port_id) (mtr_id) (action_mask) \
- (action0) [(action1) (action1)]
-
-where:
-
-* ``action_mask``: Bit mask indicating which policer actions need to be
- updated. One or more policer actions can be updated in a single function
- invocation. To update the policer action associated with color C, bit
- (1 << C) needs to be set in *action_mask* and element at position C
- in the *actions* array needs to be valid.
-* ``actionx``: Policer action for the color x,
- RTE_MTR_GREEN <= x < RTE_MTR_COLORS
-
set port meter stats mask
~~~~~~~~~~~~~~~~~~~~~~~~~
- ``ipv4``: match IPv4 header.
+ - ``version_ihl {unsigned}``: IPv4 version and IP header length.
- ``tos {unsigned}``: type of service.
- ``ttl {unsigned}``: time to live.
- ``proto {unsigned}``: next protocol ID.
- ``vxlan``: match VXLAN header.
- ``vni {unsigned}``: VXLAN identifier.
+ - ``last_rsvd {unsigned}``: VXLAN last reserved 8-bits.
- ``e_tag``: match IEEE 802.1BR E-Tag header.
- ``pdu_type {unsigned}``: PDU type.
- - ``qfi {unsigned}``: PPP, RQI and QoS flow identifier.
+ - ``qfi {unsigned}``: QoS flow identifier.
- ``pppoes``, ``pppoed``: match PPPoE header.
- ``s_field {unsigned}``: S field.
- ``seid {unsigned}``: session endpoint identifier.
+- ``integrity``: match packet integrity.
+
+ - ``level {unsigned}``: Packet encapsulation level the item should
+ apply to. See rte_flow_action_rss for details.
+ - ``value {unsigned}``: A bitmask that specify what packet elements
+ must be matched for integrity.
+
+- ``conntrack``: match conntrack state.
+
+- ``port_representor``: match traffic entering the embedded switch from the given ethdev
+
+ - ``port_id {unsigned}``: ethdev port ID
+
Actions list
^^^^^^^^^^^^
- ``indirect_action_id {unsigned}``: Indirect action ID to use
+- ``color``: Color the packet to reflect the meter color result
+
+ - ``type {value}``: Set color type with specified value(green/yellow/red)
+
Destroying flow rules
~~~~~~~~~~~~~~~~~~~~~
Raw encapsulation configuration can be set by the following commands
-Eecapsulating VxLAN::
+Encapsulating VxLAN::
testpmd> set raw_encap 4 eth src is 10:11:22:33:44:55 / vlan tci is 1
inner_type is 0x0800 / ipv4 / udp dst is 4789 / vxlan vni
testpmd> flow create 0 ingress transfer pattern eth / end actions
sample ratio 1 index 0 / port_id id 2 / end
+Sample integrity rules
+~~~~~~~~~~~~~~~~~~~~~~
+
+Integrity rules can be created by the following commands:
+
+Integrity rule that forwards valid TCP packets to group 1.
+TCP packet integrity is matched with the ``l4_ok`` bit 3.
+
+::
+
+ testpmd> flow create 0 ingress
+ pattern eth / ipv4 / tcp / integrity value mask 8 value spec 8 / end
+ actions jump group 1 / end
+
+Integrity rule that forwards invalid packets to application.
+General packet integrity is matched with the ``packet_ok`` bit 0.
+
+::
+
+ testpmd> flow create 0 ingress pattern integrity value mask 1 value spec 0 / end actions queue index 0 / end
+
+Sample conntrack rules
+~~~~~~~~~~~~~~~~~~~~~~
+
+Conntrack rules can be set by the following commands
+
+Need to construct the connection context with provided information.
+In the first table, create a flow rule by using conntrack action and jump to
+the next table. In the next table, create a rule to check the state.
+
+::
+
+ testpmd> set conntrack com peer 1 is_orig 1 enable 1 live 1 sack 1 cack 0
+ last_dir 0 liberal 0 state 1 max_ack_win 7 r_lim 5 last_win 510
+ last_seq 2632987379 last_ack 2532480967 last_end 2632987379
+ last_index 0x8
+ testpmd> set conntrack orig scale 7 fin 0 acked 1 unack_data 0
+ sent_end 2632987379 reply_end 2633016339 max_win 28960
+ max_ack 2632987379
+ testpmd> set conntrack rply scale 7 fin 0 acked 1 unack_data 0
+ sent_end 2532480967 reply_end 2532546247 max_win 65280
+ max_ack 2532480967
+ testpmd> flow indirect_action 0 create ingress action conntrack / end
+ testpmd> flow create 0 group 3 ingress pattern eth / ipv4 / tcp / end actions indirect 0 / jump group 5 / end
+ testpmd> flow create 0 group 5 ingress pattern eth / ipv4 / tcp / conntrack is 1 / end actions queue index 5 / end
+
+Construct the conntrack again with only "is_orig" set to 0 (other fields are
+ignored), then use "update" interface to update the direction. Create flow
+rules like above for the peer port.
+
+::
+
+ testpmd> flow indirect_action 0 update 0 action conntrack_update dir / end
+
+Sample meter with policy rules
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Meter with policy rules can be created by the following commands:
+
+Need to create policy first and actions are set for green/yellow/red colors.
+Create meter with policy id. Create flow with meter id.
+
+Example for policy with meter color action. The purpose is to color the packet
+to reflect the meter color result.
+The meter policy action list: ``green -> green, yellow -> yellow, red -> red``.
+
+::
+
+ testpmd> add port meter profile srtcm_rfc2697 0 13 21504 2688 0 0
+ testpmd> add port meter policy 0 1 g_actions color type green / end y_actions color type yellow / end
+ r_actions color type red / end
+ testpmd> create port meter 0 1 13 1 yes 0xffff 0 0
+ testpmd> flow create 0 priority 0 ingress group 1 pattern eth / end actions meter mtr_id 1 / end
+
BPF Functions
--------------