diff --git a/test_plans/ddp_ppp_l2tp_test_plan.rst b/test_plans/ddp_ppp_l2tp_test_plan.rst
index 35b0d805..4d3dff93 100644
--- a/test_plans/ddp_ppp_l2tp_test_plan.rst
+++ b/test_plans/ddp_ppp_l2tp_test_plan.rst
@@ -77,12 +77,9 @@ Prerequisites
     ./tools/dpdk-devbind.py -b igb_uio 81:00.0
 
 2. Start testpmd on host, set chained port topology mode, add txq/rxq to
-   enable multi-queues. If test PF flow director, need to add
-   --pkt-filter-mode=perfect on testpmd to enable flow director. In general,
-   PF's max queue is 64::
+   enable multi-queues. In general, PF's max queue is 64::
 
     ./<build>/app/dpdk-testpmd -c f -n 4 -- -i --port-topology=chained --txq=64 --rxq=64
-    --pkt-filter-mode=perfect
 
 Load/delete dynamic device personalization
 ==========================================
@@ -620,485 +617,3 @@ Test Case: RSS for PPPoL2TP IPv4 according to dport
 
      p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/
      IP(src="1.1.1.1",dst="2.2.2.2")/UDP(sport=4001, dport=8000)/Raw('x' * 20)
-
-Test Case: Flow director for PPPoE with default input set
-=========================================================
-
-1. Check flow type to pctype mapping::
-
-    testpmd> show port 0 pctype mapping
-
-2. Update PPPoE PAY flow type id 30 to pcytpe id 17 mapping item::
-
-    testpmd> port config 0 pctype mapping update 17 30
-
-3. Start testpmd, set fwd rxonly, enable output print
-
-4. Send PPPoE packets, check to receive packet from queue 0::
-
-    p=Ether(src="3C:FD:FE:A3:A0:01", dst="4C:FD:FE:A3:A0:01")/
-    PPPoE(sessionid=0x7)
-
-5. Use scapy to generate PPPoE raw packet test_pppoe.raw,
-   source/destination address should be swapped in the template
-   and traffic packets::
-
-    a=Ether(dst="3C:FD:FE:A3:A0:01", src="4C:FD:FE:A3:A0:01")/
-    PPPoE(sessionid=0x7)
-
-6. Setup raw flow type filter for flow director, configured queue is random
-   queue between 0~63, such as 36::
-
-    testpmd> flow_director_filter 0 mode raw add flow 30 fwd queue 36 fd_id 1
-    packet test_pppoe.raw
-
-7. Send matched swapped traffic packet, check to receive packet from
-   configured queue 36::
-
-    p=Ether(src="3C:FD:FE:A3:A0:01", dst="4C:FD:FE:A3:A0:01")/
-    PPPoE(sessionid=0x7)
-
-8. Default flow director input set are MAC SA and session ID, send non-matched
-   SA, sessionid, check to receive packet from queue 0::
-
-    p=Ether(src="3C:FD:FE:A3:A0:02", dst="4C:FD:FE:A3:A0:01")/
-    PPPoE(sessionid=0x7)
-    p=Ether(src="3C:FD:FE:A3:A0:01", dst="4C:FD:FE:A3:A0:01")/
-    PPPoE(sessionid=0x8)
-
-9. Send non-matched MAC DA, check to receive packet from queue 36::
-
-    p=Ether(src="3C:FD:FE:A3:A0:01", dst="4C:FD:FE:A3:A0:02")/
-    PPPoE(sessionid=0x7)
-
-Test Case: Flow director for PPPoE IPv4 with default input set
-==============================================================
-
-1. Check flow type to pctype mapping::
-
-    testpmd> show port 0 pctype mapping
-
-2. Update PPPoE IPv4 flow type id 28 to pcytpe id 15 mapping item::
-
-    testpmd> port config 0 pctype mapping update 15 28
-
-3. Start testpmd, set fwd rxonly, enable output print
-
-4. Send PPPoE IPv4 packets, check to receive packet from queue 0::
-
-    p=Ether()/PPPoE(sessionid=0x7)/PPP(proto=0x21)/IP(src="1.1.1.1",
-    dst="2.2.2.2")/UDP(sport=4000,dport=8000)/Raw('x' * 20)
-
-5. Use scapy to generate PPPoE IPv4 raw packet test_pppoe.raw,
-   source/destination address and port should be swapped in the template
-   and traffic packets::
-
-    a=Ether()/PPPoE(sessionid=0x7)/PPP(proto=0x21)/IP(dst="1.1.1.1",
-    src="2.2.2.2")/UDP(dport=4000,sport=8000)/Raw('x' * 20)
-
-6. Setup raw flow type filter for flow director, configured queue is random
-   queue between 0~63, such as 36::
-
-    testpmd> flow_director_filter 0 mode raw add flow 28 fwd queue 36 fd_id
-    1 packet test_pppoe.raw
-
-7. Send matched swapped traffic packet, check to receive packet from
-   configured queue 36::
-
-    p=Ether()/PPPoE(sessionid=0x7)/PPP(proto=0x21)/IP(src="1.1.1.1",
-    dst="2.2.2.2")/UDP(sport=4000,dport=8000)/Raw('x' * 20)
-
-8. Send non-matched inner src IP, inner dst IP, sport, dport packets, check to
-   receive packet from queue 0::
-
-    p=Ether()/PPPoE(sessionid=0x7)/PPP(proto=0x21)/IP(src="1.1.1.2",
-    dst="2.2.2.2")/UDP(sport=4000,dport=8000)/Raw('x' * 20)
-    p=Ether()/PPPoE(sessionid=0x7)/PPP(proto=0x21)/IP(src="1.1.1.1",
-    dst="2.2.2.3")/UDP(sport=4000,dport=8000)/Raw('x' * 20)
-    p=Ether()/PPPoE(sessionid=0x7)/PPP(proto=0x21)/IP(src="1.1.1.1",
-    dst="2.2.2.2")/UDP(sport=4001,dport=8000)/Raw('x' * 20)
-    p=Ether()/PPPoE(sessionid=0x7)/PPP(proto=0x21)/IP(src="1.1.1.1",
-    dst="2.2.2.2")/UDP(sport=4000,dport=8001)/Raw('x' * 20)
-
-9. Send non-matched sessionid packets, check to receive packet from queue 36::
-
-    p=Ether()/PPPoE(sessionid=0x8)/PPP(proto=0x21)/IP(src="1.1.1.1",
-    dst="2.2.2.2")/UDP(sport=4000,dport=8000)/Raw('x' * 20)
-
-Test Case: Flow director for PPPoE IPv6 with default input set
-==============================================================
-
-1. Check flow type to pctype mapping::
-
-    testpmd> show port 0 pctype mapping
-
-2. Update PPPoE IPv6 flow type id 29 to pcytpe id 16 mapping item::
-
-    testpmd> port config 0 pctype mapping update 16 29
-
-3. Start testpmd, set fwd rxonly, enable output print
-
-4. Send PPPoE IPv6 packets, check to receive packet from queue 0::
-
-    p=Ether()/PPPoE(sessionid=0x7)/PPP(proto=0x57)/
-    IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001",
-    dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/
-    UDP(sport=4000,dport=8000)/Raw('x' * 20)
-
-5. Use scapy to generate PPPoE IPv4 raw packet test_pppoe.raw,
-   source/destination address and port should be swapped in the template
-   and traffic packets::
-
-    a=Ether()/PPPoE(sessionid=0x7)/PPP(proto=0x57)/
-    IPv6(dst="1001:0db8:85a3:0000:0000:8a2e:0370:0001",
-    src="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/
-    UDP(dport=4000,sport=8000)/Raw('x' * 20)
-
-6. Setup raw flow type filter for flow director, configured queue is random
-   queue between 0~63, such as 36::
-
-    testpmd> flow_director_filter 0 mode raw add flow 29 fwd queue 36 fd_id 1
-    packet test_pppoe.raw
-
-7. Send matched swapped traffic packet, check to receive packet from
-   configured queue 36::
-
-    p=Ether()/PPPoE(sessionid=0x7)/PPP(proto=0x57)/
-    IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001",
-    dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/
-    UDP(sport=4000,dport=8000)/Raw('x' * 20)
-
-8. Send non-matched inner src IPv6, inner dst IPv6, sport, dport packets,
-   check to receive packet from queue 0::
-
-    p=Ether()/PPPoE(sessionid=0x7)/PPP(proto=0x57)/
-    IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0002",
-    dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/
-    UDP(sport=4000,dport=8000)/Raw('x' * 20)
-    p=Ether()/PPPoE(sessionid=0x7)/PPP(proto=0x57)/
-    IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001",
-    dst="2001:0db8:85a3:0000:0000:8a2e:0370:0002")/
-    UDP(sport=4000,dport=8000)/Raw('x' * 20)
-    p=Ether()/PPPoE(sessionid=0x7)/PPP(proto=0x57)/
-    IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001",
-    dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/
-    UDP(sport=4001,dport=8000)/Raw('x' * 20)
-    p=Ether()/PPPoE(sessionid=0x7)/PPP(proto=0x57)/
-    IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001",
-    dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/
-    UDP(sport=4000,dport=8001)/Raw('x' * 20)
-
-9. Send non-matched sessionid packets, check to receive packet from queue 36::
-
-    p=Ether()/PPPoE(sessionid=0x8)/PPP(proto=0x57)/
-    IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001",
-    dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/
-    UDP(sport=4000,dport=8000)/Raw('x' * 20)
-
-Test Case: Flow director for L2TPv2 PAY with default input set
-==============================================================
-
-1. Check flow type to pctype mapping::
-
-    testpmd> show port 0 pctype mapping
-
-2. Update L2TP PAY flow type id 26 to pcytpe id 21 mapping item::
-
-    testpmd> port config 0 pctype mapping update 21 26
-
-3. Start testpmd, set fwd rxonly, enable output print
-
-4. Send L2TP PAY packets, check to receive packet from queue 0::
-
-    p=Ether(src="3C:FD:FE:A3:A0:01", dst="4C:FD:FE:A3:A0:01")/IP()/
-    UDP(dport=1701, sport=1701)/L2TP(sessionid=0x7)/Raw('x' * 20)
-
-5. Use scapy to generate L2TP PAY raw packet test_l2tp.raw,
-   source/destination address should be swapped in the template
-   and traffic packets::
-
-    a=Ether(dst="3C:FD:FE:A3:A0:01", src="4C:FD:FE:A3:A0:01")/IP()/
-    UDP(dport=1701, sport=1701)/L2TP(sessionid=0x7)/Raw('x' * 20)
-
-6. Setup raw flow type filter for flow director, configured queue is random
-   queue between 0~63, such as 36::
-
-    testpmd> flow_director_filter 0 mode raw add flow 26 fwd queue 36 fd_id 1
-    packet test_l2tp.raw
-
-7. Send matched swapped traffic packet, check to receive packet from
-   configured queue 36::
-
-    p=Ether(src="3C:FD:FE:A3:A0:01", dst="4C:FD:FE:A3:A0:01")/IP()/
-    UDP(dport=1701, sport=1701)/L2TP(sessionid=0x7)/Raw('x' * 20)
-
-8. Default flow director input set are MAC SA and session ID, send non-matched
-   SA, sessionid, check to receive packet from queue 0::
-
-    p=Ether(src="3C:FD:FE:A3:A0:02", dst="4C:FD:FE:A3:A0:01")/IP()/
-    UDP(dport=1701, sport=1701)/L2TP(sessionid=0x7)/Raw('x' * 20)
-    p=Ether(src="3C:FD:FE:A3:A0:01", dst="4C:FD:FE:A3:A0:01")/IP()/
-    UDP(dport=1701, sport=1701)/L2TP(sessionid=0x8)/Raw('x' * 20)
-
-9. Send non-matched MAC DA, check to receive packet from queue 36::
-
-    p=Ether(src="3C:FD:FE:A3:A0:01", dst="4C:FD:FE:A3:A0:02")/IP()/
-    UDP(dport=1701, sport=1701)/L2TP(sessionid=0x7)/Raw('x' * 20)
-
-Test Case: Flow director for PPPoL2TP IPv4 with default input set
-=================================================================
-
-1. Check flow type to pctype mapping::
-
-    testpmd> show port 0 pctype mapping
-
-2. Update PPPoL2TP IPv4 flow type id 23 to pcytpe id 18 mapping item::
-
-    testpmd> port config 0 pctype mapping update 18 23
-
-3. Start testpmd, set fwd rxonly, enable output print
-
-4. Send PPPoL2TP IPv4 packets, check to receive packet from queue 0::
-
-    p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/
-    IP(src="1.1.1.1",dst="2.2.2.2")/UDP(sport=4000, dport=8000)/Raw('x' * 20)
-
-5. Use scapy to generate PPPoL2TP IPv4 raw packet test_pppol2tp.raw,
-   source/destination address and port should be swapped in the template
-   and traffic packets::
-
-    a=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/
-    IP(dst="1.1.1.1",src="2.2.2.2")/UDP(dport=4000, sport=8000)/Raw('x' * 20)
-
-6. Setup raw flow type filter for flow director, configured queue is random
-   queue between 0~63, such as 36::
-
-    testpmd> flow_director_filter 0 mode raw add flow 23 fwd queue 36 fd_id 1
-    packet test_pppol2tp.raw
-
-7. Send matched swapped traffic packet, check to receive packet from
-   configured queue 36::
-
-    p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/
-    IP(src="1.1.1.1",dst="2.2.2.2")/UDP(sport=4000, dport=8000)/Raw('x' * 20)
-
-8. Send non-matched inner src IP, inner dst IP, sport, dport packets, check to
-   receive packet from queue 0::
-
-    p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/
-    IP(src="1.1.1.2",dst="2.2.2.2")/UDP(sport=4000, dport=8000)/Raw('x' * 20)
-    p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/
-    IP(src="1.1.1.1",dst="2.2.2.3")/UDP(sport=4000, dport=8000)/Raw('x' * 20)
-    p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/
-    IP(src="1.1.1.1",dst="2.2.2.2")/UDP(sport=4001, dport=8000)/Raw('x' * 20)
-    p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/
-    IP(src="1.1.1.1",dst="2.2.2.2")/UDP(sport=4000, dport=8001)/Raw('x' * 20)
-
-Test Case: Flow director for PPPoL2TP IPv6 with default input set
-=================================================================
-
-1. Check flow type to pctype mapping::
-
-    testpmd> show port 0 pctype mapping
-
-2. Update PPPoL2TP IPv6 flow type id 24 to pcytpe id 19 mapping item::
-
-    testpmd> port config 0 pctype mapping update 19 24
-
-3. Start testpmd, set fwd rxonly, enable output print
-
-4. Send PPPoL2TP IPv6 packets, check to receive packet from queue 0::
-
-    p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0057)/
-    IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001",
-    dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/
-    UDP(sport=4000, dport=8000)/Raw('x' * 20)
-
-5. Use scapy to generate PPPoL2TP IPv6 raw packet test_pppol2tp.raw,
-   source/destination address and port should be swapped in the template
-   and traffic packets::
-
-    a=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0057)/
-    IPv6(dst="1001:0db8:85a3:0000:0000:8a2e:0370:0001",
-    src="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/
-    UDP(dport=4000, sport=8000)/Raw('x' * 20)
-
-6. Setup raw flow type filter for flow director, configured queue is random
-   queue between 0~63, such as 36::
-
-    testpmd> flow_director_filter 0 mode raw add flow 24 fwd queue 36
-    fd_id 1 packet test_pppol2tp.raw
-
-7. Send matched swapped traffic packet, check to receive packet from
-   configured queue 36::
-
-    p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0057)/
-    IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001",
-    dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/
-    UDP(sport=4000, dport=8000)/Raw('x' * 20)
-
-8. Send non-matched inner src IPv6, inner dst IPv6, sport, dport packets,
-   check to receive packet from queue 0::
-
-    p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0057)/
-    IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0002",
-    dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/
-    UDP(sport=4000, dport=8000)/Raw('x' * 20)
-    p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0057)/
-    IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001",
-    dst="2001:0db8:85a3:0000:0000:8a2e:0370:0002")/
-    UDP(sport=4000, dport=8000)/Raw('x' * 20)
-    p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0057)/
-    IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001",
-    dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/
-    UDP(sport=4001, dport=8000)/Raw('x' * 20)
-    p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0057)/
-    IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001",
-    dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/
-    UDP(sport=4000, dport=8001)/Raw('x' * 20)
-
-Test Case: Flow director for PPPoL2TP IPv4 according to inner destination IPv4
-==============================================================================
-
-1. Check flow type to pctype mapping::
-
-    testpmd> show port 0 pctype mapping
-
-2. Update PPPoL2TP IPv4 flow type id 23 to pcytpe id 18 mapping item::
-
-    testpmd> port config 0 pctype mapping update 18 23
-
-3. Reset PPPoL2TP IPv4 flow director input set configuration::
-
-    testpmd> port config 0 pctype 18 fdir_inset clear all
-
-4. Inner dst IP words are 27 and 28, enable flow director input set
-   for them::
-
-    testpmd> port config 0 pctype 18 fdir_inset set field 27
-    testpmd> port config 0 pctype 18 fdir_inset set field 28
-
-5. Start testpmd, set fwd rxonly, enable output print
-
-6. Send PPPoL2TP IPv4 packets, check to receive packet from queue 0::
-
-    p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/
-    IP(src="1.1.1.1",dst="2.2.2.2")/UDP(sport=4000, dport=8000)/Raw('x' * 20)
-
-7. Use scapy to generate PPPoL2TP IPv4 raw packet test_pppol2tp.raw,
-   source/destination address and port should be swapped in the template
-   and traffic packets::
-
-    a=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/
-    IP(dst="1.1.1.1",src="2.2.2.2")/UDP(dport=4000, sport=8000)/Raw('x' * 20)
-
-8. Setup raw flow type filter for flow director, configured queue is random
-   queue between 0~63, such as 36::
-
-    testpmd> flow_director_filter 0 mode raw add flow 23 fwd queue 36
-    fd_id 1 packet test_pppol2tp.raw
-
-9. Send matched swapped traffic packet, check to receive packet from
-   configured queue 36::
-
-    p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/
-    IP(src="1.1.1.1",dst="2.2.2.2")/UDP(sport=4000, dport=8000)/Raw('x' * 20)
-
-10. Send matched inner dst IP, but non-matched inner src IP, sport,
-    dport packets, check to receive packet from queue 36::
-
-     p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/
-     IP(src="1.1.1.2",dst="2.2.2.2")/UDP(sport=4000, dport=8000)/Raw('x' * 20)
-     p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/
-     IP(src="1.1.1.1",dst="2.2.2.2")/UDP(sport=4001, dport=8000)/Raw('x' * 20)
-     p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/
-     IP(src="1.1.1.1",dst="2.2.2.2")/UDP(sport=4000, dport=8001)/Raw('x' * 20)
-
-11. Send non-matched inner dst IP packets, check to receive packet from
-    queue 0::
-
-     p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0021)/
-     IP(src="1.1.1.1",dst="2.2.2.3")/UDP(sport=4000, dport=8000)/Raw('x' * 20)
-
-Test Case: Flow director for PPPoL2TP IPv6 according to inner destination IPv6
-==============================================================================
-
-1. Check flow type to pctype mapping::
-
-    testpmd> show port 0 pctype mapping
-
-2. Update PPPoL2TP IPv6 flow type id 24 to pcytpe id 19 mapping item::
-
-    testpmd> port config 0 pctype mapping update 19 24
-
-3. Reset PPPoL2TP IPv6 flow director input set configuration::
-
-    testpmd> port config 0 pctype 19 fdir_inset clear all
-
-4. Inner dst IPv6 words are 21~28, enable flow director input set
-   for them::
-
-    testpmd> port config 0 pctype 19 fdir_inset set field 21
-    testpmd> port config 0 pctype 19 fdir_inset set field 22
-    testpmd> port config 0 pctype 19 fdir_inset set field 23
-    testpmd> port config 0 pctype 19 fdir_inset set field 24
-    testpmd> port config 0 pctype 19 fdir_inset set field 25
-    testpmd> port config 0 pctype 19 fdir_inset set field 26
-    testpmd> port config 0 pctype 19 fdir_inset set field 27
-    testpmd> port config 0 pctype 19 fdir_inset set field 28
-
-5. Start testpmd, set fwd rxonly, enable output print
-
-6. Send PPPoL2TP IPv6 packets, check to receive packet from queue 0::
-
-    p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0057)/
-    IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001",
-    dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/
-    UDP(sport=4000, dport=8000)/Raw('x' * 20)
-
-7. Use scapy to generate PPPoL2TP IPv6 raw packet test_pppol2tp.raw,
-   source/destination address and port should be swapped in the template
-   and traffic packets::
-
-    a=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0057)/
-    IPv6(dst="1001:0db8:85a3:0000:0000:8a2e:0370:0001",
-    src="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/
-    UDP(dport=4000, sport=8000)/Raw('x' * 20)
-
-8. Setup raw flow type filter for flow director, configured queue is random
-   queue between 0~63, such as 36::
-
-    testpmd> flow_director_filter 0 mode raw add flow 24 fwd queue 36
-    fd_id 1 packet test_pppol2tp.raw
-
-9. Send matched swapped traffic packet, check receive packet from
-   configured queue 36::
-
-    p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0057)/
-    IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001",
-    dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/
-    UDP(sport=4000, dport=8000)/Raw('x' * 20)
-
-10. Send matched inner dst IPv6, but non-matched inner src IPv6,
-    sport, dport packets, check to receive packet from queue 36::
-
-     p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0057)/
-     IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0002",
-     dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/
-     UDP(sport=4000, dport=8000)/Raw('x' * 20)
-     p=(Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0057)/
-     IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001",
-     dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/
-     UDP(sport=4001, dport=8000)/Raw('x' * 20)
-     p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0057)/
-     IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001",
-     dst="2001:0db8:85a3:0000:0000:8a2e:0370:0001")/
-     UDP(sport=4000, dport=8001)/Raw('x' * 20)
-
-11. Send non-matched inner dst IPv6 packets, check to receive packet
-    from queue 0::
-
-     p=Ether()/IP()/UDP(dport=1701, sport=1701)/PPP_L2TP(proto=0x0057)/
-     IPv6(src="1001:0db8:85a3:0000:0000:8a2e:0370:0001",
-     dst="2001:0db8:85a3:0000:0000:8a2e:0370:0002")/
-     UDP(sport=4000, dport=8000)/Raw('x' * 20)
