doc: update testpmd commands for ethertype filter
[dpdk.git] / doc / guides / testpmd_app_ug / testpmd_funcs.rst
1 ..  BSD LICENSE
2     Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
3     All rights reserved.
4
5     Redistribution and use in source and binary forms, with or without
6     modification, are permitted provided that the following conditions
7     are met:
8
9     * Redistributions of source code must retain the above copyright
10     notice, this list of conditions and the following disclaimer.
11     * Redistributions in binary form must reproduce the above copyright
12     notice, this list of conditions and the following disclaimer in
13     the documentation and/or other materials provided with the
14     distribution.
15     * Neither the name of Intel Corporation nor the names of its
16     contributors may be used to endorse or promote products derived
17     from this software without specific prior written permission.
18
19     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20     "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21     LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22     A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23     OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25     LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26     DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
31 Testpmd Runtime Functions
32 =========================
33
34 Where the testpmd application is started in interactive mode, (-i|--interactive),
35 it displays a prompt that can be used to start and stop forwarding,
36 configure the application, display statistics, set the Flow Director and other tasks.
37
38 .. code-block:: console
39
40     testpmd>
41
42 The testpmd prompt has some, limited, readline support.
43 Common bash command- line functions such as Ctrl+a and Ctrl+e to go to the start and end of the prompt line are supported
44 as well as access to the command history via the up-arrow.
45
46 There is also support for tab completion.
47 If you type a partial command and hit <TAB> you get a list of the available completions:
48
49 .. code-block:: console
50
51     testpmd> show port <TAB>
52
53         info [Mul-choice STRING]: show|clear port info|stats|fdir|stat_qmap X
54         info [Mul-choice STRING]: show|clear port info|stats|fdir|stat_qmap all
55         stats [Mul-choice STRING]: show|clear port info|stats|fdir|stat_qmap X
56         stats [Mul-choice STRING]: show|clear port info|stats|fdir|stat_qmap all
57         ...
58
59 Help Functions
60 --------------
61
62 The testpmd has on-line help for the functions that are available at runtime.
63 These are divided into sections and can be accessed using help, help section or help all:
64
65 .. code-block:: console
66
67     testpmd> help
68
69         Help is available for the following sections:
70         help control    : Start and stop forwarding.
71         help display    : Displaying port, stats and config information.
72         help config     : Configuration information.
73         help ports      : Configuring ports.
74         help flowdir    : Flow Director filter help.
75         help registers  : Reading and setting port registers.
76         help filters    : Filters configuration help.
77         help all        : All of the above sections.
78
79 Control Functions
80 -----------------
81
82 start
83 ~~~~~
84
85 Start packet forwarding with current configuration:
86
87 start
88
89 start tx_first
90 ~~~~~~~~~~~~~~
91
92 Start packet forwarding with current configuration after sending one burst of packets:
93
94 start tx_first
95
96 stop
97 ~~~~
98
99 Stop packet forwarding, and display accumulated statistics:
100
101 stop
102
103 quit
104 ~~~~
105
106 Quit to prompt:
107
108 quit
109
110 Display Functions
111 -----------------
112
113 The functions in the following sections are used to display information about the
114 testpmd configuration or the NIC status.
115
116 show port
117 ~~~~~~~~~
118
119 Display information for a given port or all ports:
120
121 show port (info|stats|fdir|stat_qmap) (port_id|all)
122
123 The available information categories are:
124
125 info    : General port information such as MAC address.
126
127 stats   : RX/TX statistics.
128
129 fdir    : Flow Director information and statistics.
130
131 stat_qmap : Queue statistics mapping.
132
133 For example:
134
135 .. code-block:: console
136
137     testpmd> show port info 0
138
139     ********************* Infos for port 0 *********************
140
141     MAC address: XX:XX:XX:XX:XX:XX
142     Link status: up
143     Link speed: 10000 Mbps
144     Link duplex: full-duplex
145     Promiscuous mode: enabled
146     Allmulticast mode: disabled
147     Maximum number of MAC addresses: 127
148     VLAN offload:
149         strip on
150         filter on
151         qinq(extend) off
152
153 show port rss reta
154 ~~~~~~~~~~~~~~~~~~
155
156 Display the rss redirection table entry indicated by masks on port X:
157
158 show port (port_id) rss reta (size) (mask0, mask1...)
159
160 size is used to indicate the hardware supported reta size
161
162 show port rss-hash
163 ~~~~~~~~~~~~~~~~~~
164
165 Display the RSS hash functions and RSS hash key of a port:
166
167 show port (port_id) rss-hash [key]
168
169 clear port
170 ~~~~~~~~~~
171
172 Clear the port statistics for a given port or for all ports:
173
174 clear port (info|stats|fdir|stat_qmap) (port_id|all)
175
176 For example:
177
178 .. code-block:: console
179
180     testpmd> clear port stats all
181
182 show config
183 ~~~~~~~~~~~
184
185 Displays the configuration of the application.
186 The configuration comes from the command-line, the runtime or the application defaults:
187
188 show config (rxtx|cores|fwd)
189
190 The available information categories are:
191
192 rxtx  : RX/TX configuration items.
193
194 cores : List of forwarding cores.
195
196 fwd   : Packet forwarding configuration.
197
198 For example:
199
200 .. code-block:: console
201
202     testpmd> show config rxtx
203
204     io packet forwarding - CRC stripping disabled - packets/burst=16
205     nb forwarding cores=2 - nb forwarding ports=1
206     RX queues=1 - RX desc=128 - RX free threshold=0
207     RX threshold registers: pthresh=8 hthresh=8 wthresh=4
208     TX queues=1 - TX desc=512 - TX free threshold=0
209     TX threshold registers: pthresh=36 hthresh=0 wthresh=0
210     TX RS bit threshold=0 - TXQ flags=0x0
211
212 read rxd
213 ~~~~~~~~
214
215 Display an RX descriptor for a port RX queue:
216
217 read rxd (port_id) (queue_id) (rxd_id)
218
219 For example:
220
221 .. code-block:: console
222
223     testpmd> read rxd 0 0 4
224         0x0000000B - 0x001D0180 / 0x0000000B - 0x001D0180
225
226 read txd
227 ~~~~~~~~
228
229 Display a TX descriptor for a port TX queue:
230
231 read txd (port_id) (queue_id) (txd_id)
232
233 For example:
234
235 .. code-block:: console
236
237     testpmd> read txd 0 0 4
238         0x00000001 - 0x24C3C440 / 0x000F0000 - 0x2330003C
239
240 Configuration Functions
241 -----------------------
242
243 The testpmd application can be configured from the runtime as well as from the command-line.
244
245 This section details the available configuration functions that are available.
246
247 .. note::
248
249     Configuration changes only become active when forwarding is started/restarted.
250
251 set default
252 ~~~~~~~~~~~
253
254 Reset forwarding to the default configuration:
255
256 set default
257
258 set verbose
259 ~~~~~~~~~~~
260
261 Set the debug verbosity level:
262
263 set verbose (level)
264
265 Currently the only available levels are 0 (silent except for error) and 1 (fully verbose).
266
267 set nbport
268 ~~~~~~~~~~
269
270 Set the number of ports used by the application:
271
272 set nbport (num)
273
274 This is equivalent to the --nb-ports command-line option.
275
276 set nbcore
277 ~~~~~~~~~~
278
279 Set the number of cores used by the application:
280
281 set nbcore (num)
282
283 This is equivalent to the --nb-cores command-line option.
284
285 .. note::
286
287     The number of cores used must not be greater than number of ports used multiplied by the number of queues per port.
288
289 set coremask
290 ~~~~~~~~~~~~
291
292 Set the forwarding cores hexadecimal mask:
293
294 set coremask (mask)
295
296 This is equivalent to the --coremask command-line option.
297
298 .. note::
299
300     The master lcore is reserved for command line parsing only and cannot be masked on for packet forwarding.
301
302 set portmask
303 ~~~~~~~~~~~~
304
305 Set the forwarding ports hexadecimal mask:
306
307 set portmask (mask)
308
309 This is equivalent to the --portmask command-line option.
310
311 set burst
312 ~~~~~~~~~
313
314 Set number of packets per burst:
315
316 set burst (num)
317
318 This is equivalent to the --burst command-line option.
319
320 In mac_retry forwarding mode, the transmit delay time and number of retries can also be set.
321
322 set burst tx delay (micrseconds) retry (num)
323
324 set txpkts
325 ~~~~~~~~~~
326
327 Set the length of each segment of the TX-ONLY packets:
328
329 set txpkts (x[,y]*)
330
331 Where x[,y]* represents a CSV list of values, without white space.
332
333 set corelist
334 ~~~~~~~~~~~~
335
336 Set the list of forwarding cores:
337
338 set corelist (x[,y]*)
339
340 For example, to change the forwarding cores:
341
342 .. code-block:: console
343
344     testpmd> set corelist 3,1
345     testpmd> show config fwd
346
347     io packet forwarding - ports=2 - cores=2 - streams=2 - NUMA support disabled
348     Logical Core 3 (socket 0) forwards packets on 1 streams:
349     RX P=0/Q=0 (socket 0) -> TX P=1/Q=0 (socket 0) peer=02:00:00:00:00:01
350     Logical Core 1 (socket 0) forwards packets on 1 streams:
351     RX P=1/Q=0 (socket 0) -> TX P=0/Q=0 (socket 0) peer=02:00:00:00:00:00
352
353 .. note::
354
355     The cores are used in the same order as specified on the command line.
356
357 set portlist
358 ~~~~~~~~~~~~
359
360 Set the list of forwarding ports:
361
362 set portlist (x[,y]*)
363
364 For example, to change the port forwarding:
365
366 .. code-block:: console
367
368     testpmd> set portlist 0,2,1,3
369     testpmd> show config fwd
370
371     io packet forwarding - ports=4 - cores=1 - streams=4
372     Logical Core 3 (socket 0) forwards packets on 4 streams:
373     RX P=0/Q=0 (socket 0) -> TX P=2/Q=0 (socket 0) peer=02:00:00:00:00:01
374     RX P=2/Q=0 (socket 0) -> TX P=0/Q=0 (socket 0) peer=02:00:00:00:00:00
375     RX P=1/Q=0 (socket 0) -> TX P=3/Q=0 (socket 0) peer=02:00:00:00:00:03
376     RX P=3/Q=0 (socket 0) -> TX P=1/Q=0 (socket 0) peer=02:00:00:00:00:02
377
378 vlan set strip
379 ~~~~~~~~~~~~~~
380
381 Set the VLAN strip on a port:
382
383 vlan set strip (on|off) (port_id)
384
385 vlan set stripq
386 ~~~~~~~~~~~~~~~
387
388 Set the VLAN strip for a queue on a port:
389
390 vlan set stripq (on|off) (port_id,queue_id)
391
392 vlan set filter
393 ~~~~~~~~~~~~~~~
394
395 Set the VLAN filter on a port:
396
397 vlan set filter (on|off) (port_id)
398
399 vlan set qinq
400 ~~~~~~~~~~~~~
401
402 Set the VLAN QinQ (extended queue in queue) on for a port:
403
404 vlan set qinq (on|off) (port_id)
405
406 vlan set tpid
407 ~~~~~~~~~~~~~
408
409 Set the outer VLAN TPID for packet filtering on a port:
410
411 vlan set tpid (value) (port_id)
412
413 .. note::
414
415     TPID value must be a 16-bit number (value <= 65536).
416
417 rx_vlan add
418 ~~~~~~~~~~~
419
420 Add a VLAN ID, or all identifiers, to the set of VLAN identifiers filtered by port ID:
421
422 rx_vlan add (vlan_id|all) (port_id)
423
424 .. note::
425
426     VLAN filter must be set on that port. VLAN ID < 4096.
427
428 rx_vlan rm
429 ~~~~~~~~~~
430
431 Remove a VLAN ID, or all identifiers, from the set of VLAN identifiers filtered by port ID:
432
433 rx_vlan rm (vlan_id|all) (port_id)
434
435 rx_vlan add(for VF)
436 ~~~~~~~~~~~~~~~~~~~
437
438 Add a VLAN ID, to the set of VLAN identifiers filtered for VF(s) for port ID:
439
440 rx_vlan add (vlan_id) port (port_id) vf (vf_mask)
441
442 rx_vlan rm(for VF)
443 ~~~~~~~~~~~~~~~~~~
444
445 Remove a VLAN ID, from the set of VLAN identifiers filtered for VF(s) for port ID:
446
447 rx_vlan rm (vlan_id) port (port_id) vf (vf_mask)
448
449 rx_vlan set tpid
450 ~~~~~~~~~~~~~~~~
451
452 Set the outer VLAN TPID for packet filtering on a port:
453
454 rx_vlan set tpid (value) (port_id)
455
456 tunnel_filter add
457 ~~~~~~~~~~~~~~~~~
458
459 Add a tunnel filter on a port:
460
461 tunnel_filter add (port_id) (outer_mac) (inner_mac) (ip_addr) (inner_vlan)
462  (tunnel_type) (filter_type) (tenant_id) (queue_id)
463
464 tunnel_filter remove
465 ~~~~~~~~~~~~~~~~~~~~
466
467 Remove a tunnel filter on a port:
468
469 tunnel_filter rm (port_id) (outer_mac) (inner_mac) (ip_addr) (inner_vlan)
470  (tunnel_type) (filter_type) (tenant_id) (queue_id)
471
472 rx_vxlan_port add
473 ~~~~~~~~~~~~~~~~~
474
475 Add an UDP port for VXLAN packet filter on a port:
476
477 rx_vxlan_port add (udp_port) (port_id)
478
479 rx_vxlan_port remove
480 ~~~~~~~~~~~~~~~~~~~~
481
482 Remove an UDP port for VXLAN packet filter on a port:
483
484 rx_vxlan_port rm (udp_port) (port_id)
485
486 tx_vlan set
487 ~~~~~~~~~~~
488
489 Set hardware insertion of VLAN ID in packets sent on a port:
490
491 tx_vlan set (vlan_id) (port_id)
492
493 tx_vlan set pvid
494 ~~~~~~~~~~~~~~~~
495
496 Set port based hardware insertion of VLAN ID in pacekts sent on a port:
497
498 tx_vlan set pvid (port_id) (vlan_id) (on|off)
499
500 tx_vlan reset
501 ~~~~~~~~~~~~~
502
503 Disable hardware insertion of a VLAN header in packets sent on a port:
504
505 tx_vlan reset (port_id)
506
507 tx_checksum set
508 ~~~~~~~~~~~~~~~
509
510 Select hardware or software calculation of the checksum when
511 transmitting a packet using the csum forward engine:
512
513 tx_cksum set (ip|udp|tcp|sctp|vxlan)
514
515 ip|udp|tcp|sctp always concern the inner layer.
516 vxlan concerns the outer IP and UDP layer (in case the packet
517 is recognized as a vxlan packet by the forward engine)
518
519 .. note::
520
521     Check the NIC Datasheet for hardware limits.
522
523 tx_checksum show
524 ~~~~~~~~~~~~~~~~
525
526 Display tx checksum offload configuration:
527
528 tx_checksum show (port_id)
529
530 tso set
531 ~~~~~~~
532
533 Enable TCP Segmentation Offload in csum forward engine:
534
535 tso set (segsize) (port_id)
536
537 .. note::
538    Please check the NIC datasheet for HW limits
539
540 tso show
541 ~~~~~~~~
542
543 Display the status of TCP Segmentation Offload:
544
545 tso show (port_id)
546
547 set fwd
548 ~~~~~~~
549
550 Set the packet forwarding mode:
551
552 set fwd (io|mac|mac_retry|macswap|flowgen|rxonly|txonly|csum|icmpecho)
553
554 The available information categories are:
555
556 *   io: forwards packets "as-is" in I/O mode.
557     This is the fastest possible forwarding operation as it does not access packets data.
558     This is the default mode.
559
560 *   mac: changes the source and the destination Ethernet addresses of packets before forwarding them.
561
562 *   mac_retry: same as "mac" forwarding mode, but includes retries if the destination queue is full.
563
564 *   macswap: MAC swap forwarding mode.
565     Swaps the source and the destination Ethernet addresses of packets before forwarding them.
566
567 *   flowgen: multi-flow generation mode.
568     Originates a bunch of flows (varying destination IP addresses), and terminate receive traffic.
569
570 *   rxonly: receives packets but doesn't transmit them.
571
572 *   txonly: generates and transmits packets without receiving any.
573
574 *   csum: changes the checksum field with HW or SW methods depending on the offload flags on the packet.
575
576 *   icmpecho: receives a burst of packets, lookup for IMCP echo requests and, if any, send back ICMP echo replies.
577
578
579 Example:
580
581 .. code-block:: console
582
583     testpmd> set fwd rxonly
584
585     Set rxonly packet forwarding mode
586
587 mac_addr add
588 ~~~~~~~~~~~~
589
590 Add an alternative MAC address to a port:
591
592 mac_addr add (port_id) (XX:XX:XX:XX:XX:XX)
593
594 mac_addr remove
595 ~~~~~~~~~~~~~~~
596
597 Remove a MAC address from a port:
598
599 mac_addr remove (port_id) (XX:XX:XX:XX:XX:XX)
600
601 mac_addr add(for VF)
602 ~~~~~~~~~~~~~~~~~~~~
603
604 Add an alternative MAC address for a VF to a port:
605
606 mac_add add port (port_id) vf (vf_id) (XX:XX:XX:XX:XX:XX)
607
608 set port-uta
609 ~~~~~~~~~~~~
610
611 Set the unicast hash filter(s) on/off for a port X:
612
613 set port (port_id) uta (XX:XX:XX:XX:XX:XX|all) (on|off)
614
615 set promisc
616 ~~~~~~~~~~~
617
618 Set the promiscuous mode on for a port or for all ports.
619 In promiscuous mode packets are not dropped if they aren't for the specified MAC address:
620
621 set promisc (port_id|all) (on|off)
622
623 set allmulti
624 ~~~~~~~~~~~~
625
626 Set the allmulti mode for a port or for all ports:
627
628 set allmulti (port_id|all) (on|off)
629
630 Same as the ifconfig (8) option. Controls how multicast packets are handled.
631
632 set flow_ctrl rx
633 ~~~~~~~~~~~~~~~~
634
635 Set the link flow control parameter on a port:
636
637 set flow_ctrl rx (on|off) tx (on|off) (high_water) (low_water) \
638 (pause_time) (send_xon) (port_id)
639
640 Where:
641
642 high_water (integer): High threshold value to trigger XOFF.
643
644 low_water (integer) : Low threshold value to trigger XON.
645
646 pause_time (integer): Pause quota in the Pause frame.
647
648 send_xon (0/1) : Send XON frame.
649
650 mac_ctrl_frame_fwd : Enable receiving MAC control frames
651
652 set pfc_ctrl rx
653 ~~~~~~~~~~~~~~~
654
655 Set the priority flow control parameter on a port:
656
657 set pfc_ctrl rx (on|off) tx (on|off) (high_water) (low_water) \ (pause_time) (priority) (port_id)
658
659 Where:
660
661 priority (0-7): VLAN User Priority.
662
663 set stat_qmap
664 ~~~~~~~~~~~~~
665
666 Set statistics mapping (qmapping 0..15) for RX/TX queue on port:
667
668 set stat_qmap (tx|rx) (port_id) (queue_id) (qmapping)
669
670 For example, to set rx queue 2 on port 0 to mapping 5:
671
672 .. code-block:: console
673
674      testpmd>set stat_qmap rx 0 2 5
675
676 set port - rx/tx(for VF)
677 ~~~~~~~~~~~~~~~~~~~~~~~~
678
679 Set VF receive/transmit from a port:
680
681 set port (port_id) vf (vf_id) (rx|tx) (on|off)
682
683 set port - mac address filter (for VF)
684 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
685
686 Add/Remove unicast or multicast MAC addr filter for a VF:
687
688 set port (port_id) vf (vf_id) (mac_addr)
689  (exact-mac|exact-mac-vlan|hashmac|hashmac-vlan) (on|off)
690
691 set port - rx mode(for VF)
692 ~~~~~~~~~~~~~~~~~~~~~~~~~~
693
694 Set the VF receive mode of a port:
695
696 set port (port_id) vf (vf_id) rxmode (AUPE|ROPE|BAM|MPE) (on|off)
697
698 The available receive modes are:
699
700 *  AUPE: accepts untagged VLAN.
701
702 *  ROPE: accepts unicast hash.
703
704 *  BAM: accepts broadcast packets
705
706 *  MPE: accepts all multicast packets
707
708 set port - tx_rate (for Queue)
709 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
710
711 Set TX rate limitation for queue of a port ID:
712
713 set port (port_id) queue (queue_id) rate (rate_value)
714
715 set port - tx_rate (for VF)
716 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
717
718 Set TX rate limitation for queues in VF of a port ID:
719
720 set port (port_id) vf (vf_id) rate (rate_value) queue_mask (queue_mask)
721
722 set port - mirror rule
723 ~~~~~~~~~~~~~~~~~~~~~~
724
725 Set port or vlan type mirror rule for a port.
726
727 set port (port_id) mirror-rule (rule_id) (pool-mirror|vlan-mirror) (poolmask|vlanid[,vlanid]*) dst-pool (pool_id) (on|off)
728
729 For example to enable mirror traffic with vlan 0,1 to pool 0:
730
731 .. code-block:: console
732
733     set port 0 mirror-rule 0 vlan-mirror 0,1 dst-pool 0 on
734
735 reset port - mirror rule
736 ~~~~~~~~~~~~~~~~~~~~~~~~
737
738 Reset a mirror rule for a port.
739
740 reset port (port_id) mirror-rule (rule_id)
741
742 set flush_rx
743 ~~~~~~~~~~~~
744
745 Flush (default) or don't flush RX streams before forwarding.
746 Mainly used with PCAP drivers to avoid the default behavior of flushing the first 512 packets on RX streams.
747
748 set flush_rx off
749
750 set bypass mode
751 ~~~~~~~~~~~~~~~
752
753 Set the bypass mode for the lowest port on bypass enabled NIC.
754
755 set bypass mode (normal|bypass|isolate) (port_id)
756
757 set bypass event
758 ~~~~~~~~~~~~~~~~
759
760 Set the event required to initiate specified bypass mode for the lowest port on a bypass enabled NIC where:
761
762 *   timeout: enable bypass after watchdog timeout.
763
764 *   os_on: enable bypass when OS/board is powered on.
765
766 *   os_off: enable bypass when OS/board is powered off.
767
768 *   power_on: enable bypass when power supply is turned on.
769
770 *   power_off: enable bypass when power supply is turned off.
771
772 set bypass event (timeout|os_on|os_off|power_on|power_off) mode (normal|bypass|isolate) (port_id)
773
774 set bypass timeout
775 ~~~~~~~~~~~~~~~~~~
776
777 Set the bypass watchdog timeout to 'n' seconds where 0 = instant.
778
779 set bypass timeout (0|1.5|2|3|4|8|16|32)
780
781 show bypass config
782 ~~~~~~~~~~~~~~~~~~
783
784 Show the bypass configuration for a bypass enabled NIC using the lowest port on the NIC.
785
786 show bypass config (port_id)
787
788 set link up
789 ~~~~~~~~~~~
790
791 Set link up for a port.
792
793 set link-up port (port id)
794
795 set link down
796 ~~~~~~~~~~~~~
797
798 Set link down for a port.
799
800 set link-down port (port id)
801
802 Port Functions
803 --------------
804
805 The following sections show functions for configuring ports.
806
807 .. note::
808
809     Port configuration changes only become active when forwarding is started/restarted.
810
811 port start
812 ~~~~~~~~~~
813
814 Start all ports or a specific port:
815
816 port start (port_id|all)
817
818 port stop
819 ~~~~~~~~~
820
821 Stop all ports or a specific port:
822
823 port stop (port_id|all)
824
825 port close
826 ~~~~~~~~~~
827
828 Close all ports or a specific port:
829
830 port close (port_id|all)
831
832 port start/stop queue
833 ~~~~~~~~~~~~~~~~~~~~~
834
835 Start/stop a rx/tx queue on a specific port:
836
837 port (port_id) (rxq|txq) (queue_id) (start|stop)
838
839 Only take effect when port is started.
840
841 port config - speed
842 ~~~~~~~~~~~~~~~~~~~
843
844 Set the speed and duplex mode for all ports or a specific port:
845
846 port config (port_id|all) speed (10|100|1000|10000|auto) duplex (half|full|auto)
847
848 port config - queues/descriptors
849 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
850
851 Set number of queues/descriptors for rxq, txq, rxd and txd:
852
853 port config all (rxq|txq|rxd|txd) (value)
854
855 This is equivalent to the --rxq, --txq, --rxd and --txd command-line options.
856
857 port config - max-pkt-len
858 ~~~~~~~~~~~~~~~~~~~~~~~~~
859
860 Set the maximum packet length:
861
862 port config all max-pkt-len (value)
863
864 This is equivalent to the --max-pkt-len command-line option.
865
866 port config - CRC Strip
867 ~~~~~~~~~~~~~~~~~~~~~~~
868
869 Set hardware CRC stripping on or off for all ports:
870
871 port config all crc-strip (on|off)
872
873 CRC stripping is off by default.
874
875 The on option is equivalent to the --crc-strip command-line option.
876
877 port config - RX Checksum
878 ~~~~~~~~~~~~~~~~~~~~~~~~~
879
880 Set hardware RX checksum offload to on or off for all ports:
881
882 port config all rx-cksum (on|off)
883
884 Checksum offload is off by default.
885
886 The on option is equivalent to the --enable-rx-cksum command-line option.
887
888 port config - VLAN
889 ~~~~~~~~~~~~~~~~~~
890
891 Set hardware VLAN on or off for all ports:
892
893 port config all hw-vlan (on|off)
894
895 Hardware VLAN is on by default.
896
897 The off option is equivalent to the --disable-hw-vlan command-line option.
898
899 port config - Drop Packets
900 ~~~~~~~~~~~~~~~~~~~~~~~~~~
901
902 Set packet drop for packets with no descriptors on or off for all ports:
903
904 port config all drop-en (on|off)
905
906 Packet dropping for packets with no descriptors is off by default.
907
908 The on option is equivalent to the --enable-drop-en command-line option.
909
910 port config - RSS
911 ~~~~~~~~~~~~~~~~~
912
913 Set the RSS (Receive Side Scaling) mode on or off:
914
915 port config all rss (ip|udp|none)
916
917 RSS is on by default.
918
919 The off option is equivalent to the --disable-rss command-line option.
920
921 port config - RSS Reta
922 ~~~~~~~~~~~~~~~~~~~~~~
923
924 Set the RSS (Receive Side Scaling) redirection table:
925
926 port config all rss reta (hash,queue)[,(hash,queue)]
927
928 port config - DCB
929 ~~~~~~~~~~~~~~~~~
930
931 Set the DCB mode for an individual port:
932
933 port config (port_id) dcb vt (on|off) (traffic_class) pfc (on|off)
934
935 The traffic class should be 4 or 8.
936
937 port config - Burst
938 ~~~~~~~~~~~~~~~~~~~
939
940 Set the number of packets per burst:
941
942 port config all burst (value)
943
944 This is equivalent to the --burst command-line option.
945
946 port config - Threshold
947 ~~~~~~~~~~~~~~~~~~~~~~~
948
949 Set thresholds for TX/RX queues:
950
951 port config all (threshold) (value)
952
953 Where the threshold type can be:
954
955 *   txpt: Set the prefetch threshold register of the TX rings, 0 <= value <= 255.
956
957 *   txht: Set the host threshold register of the TX rings, 0 <= value <= 255.
958
959 *   txwt: Set the write-back threshold register of the TX rings, 0 <= value <= 255.
960
961 *   rxpt: Set the prefetch threshold register of the RX rings, 0 <= value <= 255.
962
963 *   rxht: Set the host threshold register of the RX rings, 0 <= value <= 255.
964
965 *   rxwt: Set the write-back threshold register of the RX rings, 0 <= value <= 255.
966
967 *   txfreet: Set the transmit free threshold of the TX rings, 0 <= value <= txd.
968
969 *   rxfreet: Set the transmit free threshold of the RX rings, 0 <= value <= rxd.
970
971 *   txrst: Set the transmit RS bit threshold of TX rings, 0 <= value <= txd.
972     These threshold options are also available from the command-line.
973
974 Flow Director Functions
975 -----------------------
976
977 The Flow Director works in receive mode to identify specific flows or sets of flows and route them to specific queues.
978
979 Two types of filtering are supported which are referred to as Perfect Match and Signature filters:
980
981 *   Perfect match filters.
982     The hardware checks a match between the masked fields of the received packets and the programmed filters.
983
984 *   Signature filters.
985     The hardware checks a match between a hash-based signature of the masked fields of the received packet.
986
987 The Flow Director filters can match the following fields in a packet:
988
989 *   Source IP and destination IP addresses.
990
991 *   Source port and destination port numbers (for UDP and TCP packets).
992
993 *   IPv4/IPv6 and UDP/ TCP/SCTP protocol match.
994
995 *   VLAN header.
996
997 *   Flexible 2-byte tuple match anywhere in the first 64 bytes of the packet.
998
999 The Flow Director can also mask out parts of all of these fields so that filters are only applied to certain fields
1000 or parts of the fields.
1001 For example it is possible to mask out sub-nets of IP addresses or to ignore VLAN headers.
1002
1003 In the following sections, several common parameters are used in the Flow Director filters.
1004 These are explained below:
1005
1006 *   src: A pair of source address values. The source IP, in IPv4 or IPv6 format, and the source port:
1007
1008     src 192.168.0.1 1024
1009
1010     src 2001:DB8:85A3:0:0:8A2E:370:7000 1024
1011
1012 *   dst: A pair of destination address values. The destination IP, in IPv4 or IPv6 format, and the destination port.
1013
1014 *   flexbytes: A 2-byte tuple to be matched within the first 64 bytes of a packet.
1015
1016 The offset where the match occurs is set by the --pkt-filter-flexbytes-offset command-line parameter
1017 and is counted from the first byte of the destination Ethernet MAC address.
1018 The default offset is 0xC bytes, which is the "Type" word in the MAC header.
1019 Typically, the flexbyte value is set to 0x0800 to match the IPv4 MAC type or 0x86DD to match IPv6.
1020 These values change when a VLAN tag is added.
1021
1022 *   vlan: The VLAN header to match in the packet.
1023
1024 *   queue: The index of the RX queue to route matched packets to.
1025
1026 *   soft: The 16-bit value in the MBUF flow director ID field for RX packets matching the filter.
1027
1028 add_signature_filter
1029 ~~~~~~~~~~~~~~~~~~~~
1030
1031 Add a signature filter:
1032
1033 # Command is displayed on several lines for clarity.
1034
1035 add_signature_filter (port_id) (ip|udp|tcp|sctp)
1036
1037     src (src_ip_address) (src_port)
1038
1039     dst (dst_ip_address) (dst_port)
1040
1041     flexbytes (flexbytes_values)
1042
1043     vlan (vlan_id) queue (queue_id)
1044
1045 upd_signature_filter
1046 ~~~~~~~~~~~~~~~~~~~~
1047
1048 Update a signature filter:
1049
1050 # Command is displayed on several lines for clarity.
1051
1052 upd_signature_filter (port_id) (ip|udp|tcp|sctp)
1053
1054     src (src_ip_address) (src_port)
1055
1056     dst (dst_ip_address) (dst_port)
1057
1058     flexbytes (flexbytes_values)
1059
1060     vlan (vlan_id) queue (queue_id)
1061
1062 rm_signature_filter
1063 ~~~~~~~~~~~~~~~~~~~
1064
1065 Remove a signature filter:
1066
1067 # Command is displayed on several lines for clarity.
1068
1069 rm_signature_filter (port_id) (ip|udp|tcp|sctp)
1070
1071     src (src_ip_address) (src_port)
1072
1073     dst (dst_ip_address) (dst_port)
1074
1075     flexbytes (flexbytes_values)
1076
1077     vlan (vlan_id)
1078
1079 add_perfect_filter
1080 ~~~~~~~~~~~~~~~~~~
1081
1082 Add a perfect filter:
1083
1084 # Command is displayed on several lines for clarity.
1085
1086 add_perfect_filter (port_id) (ip|udp|tcp|sctp)
1087
1088     src (src_ip_address) (src_port)
1089
1090     dst (dst_ip_address) (dst_port)
1091
1092     flexbytes (flexbytes_values)
1093
1094     vlan (vlan_id) queue (queue_id) soft (soft_id)
1095
1096 upd_perfect_filter
1097 ~~~~~~~~~~~~~~~~~~
1098
1099 Update a perfect filter:
1100
1101 # Command is displayed on several lines for clarity.
1102
1103 upd_perfect_filter (port_id) (ip|udp|tcp|sctp)
1104
1105     src (src_ip_address) (src_port)
1106
1107     dst (dst_ip_address) (dst_port)
1108
1109     flexbytes (flexbytes_values)
1110
1111     vlan (vlan_id) queue (queue_id)
1112
1113 rm_perfect_filter
1114 ~~~~~~~~~~~~~~~~~
1115
1116 Remove a perfect filter:
1117
1118 rm_perfect_filter (port_id) (ip|udp|tcp|sctp)
1119
1120     src (src_ip_address) (src_port)
1121
1122     dst (dst_ip_address) (dst_port)
1123
1124     flexbytes (flexbytes_values)
1125
1126     vlan (vlan_id) soft (soft_id)
1127
1128 set_masks_filter
1129 ~~~~~~~~~~~~~~~~
1130
1131 Set IPv4 filter masks:
1132
1133 # Command is displayed on several lines for clarity.
1134
1135 set_masks_filter (port_id) only_ip_flow (0|1)
1136
1137     src_mask (ip_src_mask) (src_port_mask)
1138
1139     dst_mask (ip_dst_mask) (dst_port_mask)
1140
1141     flexbytes (0|1) vlan_id (0|1) vlan_prio (0|1)
1142
1143 set_ipv6_masks_filter
1144 ~~~~~~~~~~~~~~~~~~~~~
1145
1146 Set IPv6 filter masks:
1147
1148 # Command is displayed on several lines for clarity.
1149
1150 set_ipv6_masks_filter (port_id) only_ip_flow (0|1)
1151
1152     src_mask (ip_src_mask) (src_port_mask)
1153
1154     dst_mask (ip_dst_mask) (dst_port_mask)
1155
1156     flexbytes (0|1) vlan_id (0|1) vlan_prio (0|1)
1157
1158     compare_dst (0|1)
1159
1160 Link Bonding Functions
1161 ----------------------
1162
1163 The Link Bonding functions make it possible to dynamically create and
1164 manage link bonding devices from within testpmd interactive prompt.
1165
1166 create bonded device
1167 ~~~~~~~~~~~~~~~~~~~~
1168
1169 Create a new bonding device:
1170
1171 create bonded device (mode) (socket)
1172
1173 For example, to create a bonded device in mode 1 on socket 0.
1174
1175 .. code-block:: console
1176
1177     testpmd> create bonded 1 0
1178     created new bonded device (port X)
1179
1180 add bonding slave
1181 ~~~~~~~~~~~~~~~~~
1182
1183 Adds Ethernet device to a Link Bonding device:
1184
1185 add bonding slave (slave id) (port id)
1186
1187 For example, to add Ethernet device (port 6) to a Link Bonding device (port 10).
1188
1189 .. code-block:: console
1190
1191     testpmd> add bonding slave 6 10
1192
1193
1194 remove bonding slave
1195 ~~~~~~~~~~~~~~~~~~~~
1196
1197 Removes an Ethernet slave device from a Link Bonding device:
1198
1199 remove bonding slave (slave id) (port id)
1200
1201 For example, to remove Ethernet slave device (port 6) to a Link Bonding device (port 10).
1202
1203 .. code-block:: console
1204
1205     testpmd> remove bonding slave 6 10
1206
1207 set bonding mode
1208 ~~~~~~~~~~~~~~~~
1209
1210 Set the Link Bonding mode of a Link Bonding device:
1211
1212 set bonding mode (value) (port id)
1213
1214 For example, to set the bonding mode of a Link Bonding device (port 10) to broadcast (mode 3).
1215
1216 .. code-block:: console
1217
1218     testpmd> set bonding mode 3 10
1219
1220 set bonding primary
1221 ~~~~~~~~~~~~~~~~~~~
1222
1223 Set an Ethernet slave device as the primary device on a Link Bonding device:
1224
1225 set bonding primary (slave id) (port id)
1226
1227 For example, to set the Ethernet slave device (port 6) as the primary port of a Link Bonding device (port 10).
1228
1229 .. code-block:: console
1230
1231     testpmd> set bonding primary 6 10
1232
1233 set bonding mac
1234 ~~~~~~~~~~~~~~~
1235
1236 Set the MAC address of a Link Bonding device:
1237
1238 set bonding mac (port id) (mac)
1239
1240 For example, to set the MAC address of a Link Bonding device (port 10) to 00:00:00:00:00:01
1241
1242 .. code-block:: console
1243
1244     testpmd> set bonding mac 10 00:00:00:00:00:01
1245
1246 set bonding xmit_balance_policy
1247 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1248
1249 Set the transmission policy for a Link Bonding device when it is in Balance XOR mode:
1250
1251 set bonding xmit_balance_policy (port_id) (l2|l23|l34)
1252
1253 For example, set a Link Bonding device (port 10) to use a balance policy of layer 3+4 (IP addresses & UDP ports )
1254
1255 .. code-block:: console
1256
1257     testpmd> set bonding xmit_balance_policy 10 l34
1258
1259
1260 set bonding mon_period
1261 ~~~~~~~~~~~~~~~~~~~~~~
1262
1263 Set the link status monitoring polling period in milliseconds for a bonding devicie.
1264
1265 This adds support for PMD slave devices which do not support link status interrupts.
1266 When the mon_period is set to a value greater than 0 then all PMD's which do not support
1267 link status ISR will be queried every polling interval to check if their link status has changed.
1268
1269 set bonding mon_period (port_id) (value)
1270
1271 For example, to set the link status monitoring polling period of bonded device (port 5) to 150ms
1272
1273 .. code-block:: console
1274
1275     testpmd> set bonding mon_period 5 150
1276
1277
1278 show bonding config
1279 ~~~~~~~~~~~~~~~~~~~
1280
1281 Show the current configuration of a Link Bonding device:
1282
1283 show bonding config (port id)
1284
1285 For example,
1286 to show the configuration a Link Bonding device (port 9) with 3 slave devices (1, 3, 4)
1287 in balance mode with a transmission policy of layer 2+3.
1288
1289 .. code-block:: console
1290
1291     testpmd> show bonding config 9
1292         Bonding mode: 2
1293         Balance Xmit Policy: BALANCE_XMIT_POLICY_LAYER23
1294         Slaves (3): [1 3 4]
1295         Active Slaves (3): [1 3 4]
1296         Primary: [3]
1297
1298 Register Functions
1299 ------------------
1300
1301 The Register functions can be used to read from and write to registers on the network card referenced by a port number.
1302 This is mainly useful for debugging purposes.
1303 Reference should be made to the appropriate datasheet for the network card for details on the register addresses
1304 and fields that can be accessed.
1305
1306 read reg
1307 ~~~~~~~~
1308
1309 Display the value of a port register:
1310
1311 read reg (port_id) (address)
1312
1313 For example, to examine the Flow Director control register (FDIRCTL, 0x0000EE000) on an Intel® 82599 10 GbE Controller:
1314
1315 .. code-block:: console
1316
1317     testpmd> read reg 0 0xEE00
1318     port 0 PCI register at offset 0xEE00: 0x4A060029 (1241907241)
1319
1320 read regfield
1321 ~~~~~~~~~~~~~
1322
1323 Display a port register bit field:
1324
1325 read regfield (port_id) (address) (bit_x) (bit_y)
1326
1327 For example, reading the lowest two bits from the register in the example above:
1328
1329 .. code-block:: console
1330
1331     testpmd> read regfield 0 0xEE00 0 1
1332     port 0 PCI register at offset 0xEE00: bits[0, 1]=0x1 (1)
1333
1334 read regbit
1335 ~~~~~~~~~~~
1336
1337 Display a single port register bit:
1338
1339 read regbit (port_id) (address) (bit_x)
1340
1341 For example, reading the lowest bit from the register in the example above:
1342
1343 .. code-block:: console
1344
1345     testpmd> read regbit 0 0xEE00 0
1346     port 0 PCI register at offset 0xEE00: bit 0=1
1347
1348 write reg
1349 ~~~~~~~~~
1350
1351 Set the value of a port register:
1352
1353 write reg (port_id) (address) (value)
1354
1355 For example, to clear a register:
1356
1357 .. code-block:: console
1358
1359     testpmd> write reg 0 0xEE00 0x0
1360     port 0 PCI register at offset 0xEE00: 0x00000000 (0)
1361
1362 write regfield
1363 ~~~~~~~~~~~~~~
1364
1365 Set bit field of a port register:
1366
1367 write regfield (port_id) (address) (bit_x) (bit_y) (value)
1368
1369 For example, writing to the register cleared in the example above:
1370
1371 .. code-block:: console
1372
1373     testpmd> write regfield 0 0xEE00 0 1 2
1374     port 0 PCI register at offset 0xEE00: 0x00000002 (2)
1375
1376 write regbit
1377 ~~~~~~~~~~~~
1378
1379 Set single bit value of a port register:
1380
1381 write regbit (port_id) (address) (bit_x) (value)
1382
1383 For example, to set the high bit in the register from the example above:
1384
1385 .. code-block:: console
1386
1387     testpmd> write regbit 0 0xEE00 31 1
1388     port 0 PCI register at offset 0xEE00: 0x8000000A (2147483658)
1389
1390 Filter Functions
1391 ----------------
1392
1393 This section details the available filter functions that are available.
1394
1395 ethertype_filter
1396 ~~~~~~~~~~~~~~~~~~~~
1397
1398 Add or delete a L2 Ethertype filter, which identify packets by their L2 Ethertype mainly assign them to a receive queue.
1399
1400 ethertype_filter (port_id) (add|del) (mac_addr|mac_ignr) (mac_address) ethertype (ether_type) (drop|fwd) queue (queue_id)
1401
1402 The available information parameters are:
1403
1404 *   port_id:  the port which the Ethertype filter assigned on.
1405
1406 *   mac_addr: compare destination mac address.
1407
1408 *   mac_ignr: ignore destination mac address match.
1409
1410 *   mac_address: destination mac address to match.
1411
1412 *   ether_type: the EtherType value want to match,
1413     for example 0x0806 for ARP packet. 0x0800 (IPv4) and 0x86DD (IPv6) are invalid.
1414
1415 *   queue_id : The receive queue associated with this EtherType filter. It is meaningless when deleting or dropping.
1416
1417 Example, to add/remove an ethertype filter rule:
1418
1419 .. code-block:: console
1420
1421     testpmd> ethertype_filter 0 add mac_ignr ethertype 0x0806 fwd queue 3
1422     testpmd> ethertype_filter 0 del mac_ignr ethertype 0x0806 fwd queue 3
1423
1424 add_2tuple_filter
1425 ~~~~~~~~~~~~~~~~~
1426
1427 Add a 2-tuple filter,
1428 which identify packets by specific protocol and destination TCP/UDP port
1429 and forwards packets into one of the receive queues.
1430
1431 add_2tuple_filter (port_id) protocol (pro_value) (pro_mask) dst_port (port_value) (port_mask)
1432 flags (flg_value) priority (prio_value) queue (queue_id) index (idx)
1433
1434 The available information parameters are:
1435
1436 *   port_id: the port which the 2-tuple filter assigned on.
1437
1438 *   pro_value: IP L4 protocol
1439
1440 *   pro_mask: protocol participates in the match or not, 1 means participate
1441
1442 *   port_value: destination port in L4.
1443
1444 *   port_mask: destination port participates in the match or not, 1 means participate.
1445
1446 *   flg_value: TCP control bits. The non-zero value is invalid, when the pro_value is not set to 0x06 (TCP).
1447
1448 *   prio_value: the priority of this filter.
1449
1450 *   queue_id: The receive queue associated with this 2-tuple filter
1451
1452 *   index: the index of this 2-tuple filter
1453
1454 Example:
1455
1456 .. code-block:: console
1457
1458     testpmd> add_2tuple_filter 0 protocol 0x06 1 dst_port 32 1 flags 0x02 priority 3 queue 3 index 0
1459
1460 remove_2tuple_filter
1461 ~~~~~~~~~~~~~~~~~~~~
1462
1463 Remove a 2-tuple filter
1464
1465 remove_2tuple_filter (port_id) index (idx)
1466
1467 get_2tuple_filter
1468 ~~~~~~~~~~~~~~~~~
1469
1470 Get and display a 2-tuple filter
1471
1472 get_2tuple_filter (port_id) index (idx)
1473
1474 Example:
1475
1476 .. code-block:: console
1477
1478     testpmd> get_2tuple_filter 0 index 0
1479
1480     filter[0]:
1481         Destination Port: 0x0020 mask: 1
1482         protocol: 0x06 mask:1 tcp_flags: 0x02
1483         priority: 3   queue: 3
1484
1485 add_5tuple_filter
1486 ~~~~~~~~~~~~~~~~~
1487
1488 Add a 5-tuple filter,
1489 which consists of a 5-tuple (protocol, source and destination IP addresses, source and destination TCP/UDP/SCTP port)
1490 and routes packets into one of the receive queues.
1491
1492 add_5tuple_filter (port_id) dst_ip (dst_address) src_ip (src_address) dst_port (dst_port_value) src_port (src_port_value)
1493 protocol (protocol_value) mask (mask_value) flags (flags_value) priority (prio_value) queue (queue_id) index (idx)
1494
1495 The available information parameters are:
1496
1497 *   port_id: the port which the 5-tuple filter assigned on.
1498
1499 *   dst_address: destination IP address.
1500
1501 *   src_address: source IP address.
1502
1503 *   dst_port_value: TCP/UDP destination port.
1504
1505 *   src_port_value: TCP/UDP source port.
1506
1507 *   protocol_value: L4 protocol.
1508
1509 *   mask_value: participates in the match or not by bit for field above, 1b means participate
1510
1511 *   flags_value: TCP control bits. The non-zero value is invalid, when the protocol_value is not set to 0x06 (TCP).
1512
1513 *   prio_value: the priority of this filter.
1514
1515 *   queue_id: The receive queue associated with this 5-tuple filter.
1516
1517 *   index: the index of this 5-tuple filter
1518
1519 Example:
1520
1521 .. code-block:: console
1522
1523     testpmd> add_5tuple_filter 1 dst_ip 2.2.2.5 src_ip 2.2.2.4 dst_port 64 src_port 32 protocol 0x06 mask 0x1F flags 0x0 priority 3 queue 3 index 0
1524
1525 remove_5tuple_filter
1526 ~~~~~~~~~~~~~~~~~~~~
1527
1528 Remove a 5-tuple filter
1529
1530 remove_5tuple_filter (port_id) index (idx)
1531
1532 get_5tuple_filter
1533 ~~~~~~~~~~~~~~~~~
1534
1535 Get and display a 5-tuple filter
1536
1537 get_5tuple_filter (port_id) index (idx)
1538
1539 Example:
1540
1541 .. code-block:: console
1542
1543     testpmd> get_5tuple_filter 1 index 0
1544
1545     filter[0]:
1546         Destination IP: 0x02020205 mask: 1
1547         Source IP: 0x02020204 mask: 1
1548         Destination Port: 0x0040 mask: 1
1549         Source Port: 0x0020 mask: 1
1550         protocol: 0x06 mask: 1
1551         priority: 3 flags: 0x00 queue: 3
1552
1553 add_syn_filter
1554 ~~~~~~~~~~~~~~
1555
1556 Add SYN filter, which can forward TCP packets whose *SYN* flag is set into a separate queue.
1557
1558 add_syn_filter (port_id) priority (high|low) queue (queue_id)
1559
1560 The available information parameters are:
1561
1562 *   port_id: the port which the SYN filter assigned on.
1563
1564 *   high: this SYN filter has higher priority than other filters.
1565
1566 *   low: this SYN filter has lower priority than other filters.
1567
1568 *   queue_id: The receive queue associated with this SYN filter
1569
1570 Example:
1571
1572 .. code-block:: console
1573
1574     testpmd> add_syn_filter 0 priority high queue 3,
1575
1576 remove_syn_filter
1577 ~~~~~~~~~~~~~~~~~
1578
1579 Remove SYN filter
1580
1581 remove_syn_filter (port_id)
1582
1583 get_syn_filter
1584 ~~~~~~~~~~~~~~
1585
1586 Get and display SYN filter
1587
1588 get_syn_filter (port_id)
1589
1590 Example:
1591
1592 .. code-block:: console
1593
1594     testpmd> get_syn_filter 0
1595
1596     syn filter: on, priority: high, queue: 3
1597
1598 add_flex_filter
1599 ~~~~~~~~~~~~~~~
1600
1601 Add a Flex filter,
1602 which recognizes any arbitrary pattern within the first 128 bytes of the packet
1603 and routes packets into one of the receive queues.
1604
1605 add_flex_filter (port_id) len (len_value) bytes (bytes_string) mask (mask_value)
1606 priority (prio_value) queue (queue_id) index (idx)
1607
1608 The available information parameters are:
1609
1610 *   port_id: the port which the Flex filter assigned on.
1611
1612 *   len_value: filter length in byte, no greater than 128.
1613
1614 *   bytes_string: a sting in format of octal, means the value the flex filter need to match.
1615
1616 *   mask_value: a sting in format of octal, bit 1 means corresponding byte in DWORD participates in the match.
1617
1618 *   prio_value: the priority of this filter.
1619
1620 *   queue_id: The receive queue associated with this Flex filter.
1621
1622 *   index: the index of this Flex filter
1623
1624 Example:
1625
1626 .. code-block:: console
1627
1628    testpmd> add_flex_filter 0 len 16 bytes 0x00000000000000000000000008060000 mask 000C priority 3 queue 3 index 0
1629
1630 Assign a packet whose 13th and 14th bytes are 0x0806 to queue 3.
1631
1632 remove_flex_filter
1633 ~~~~~~~~~~~~~~~~~~
1634
1635 Remove a Flex filter
1636
1637 remove_flex_filter (port_id) index (idx)
1638
1639 get_flex_filter
1640 ~~~~~~~~~~~~~~~
1641
1642 Get and display a Flex filter
1643
1644 get_flex_filter (port_id) index (idx)
1645
1646 Example:
1647
1648 .. code-block:: console
1649
1650     testpmd> get_flex_filter 0 index 0
1651
1652     filter[0]:
1653
1654         length: 16
1655
1656         dword[]: 0x00000000 00000000 00000000 08060000 00000000 00000000 00000000
1657     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
1658     00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
1659     00000000 00000000 00000000 00000000 00000000 00000000 00000000
1660
1661         mask[]:
1662     0b0000000000001100000000000000000000000000000000000000000000000000000000
1663     0000000000000000000000000000000000000000000000000000000000
1664
1665         priority: 3   queue: 3