vpp之dpdk测试环境搭建

绑定82955网口到dpdk模式

sudo modprobe vfio-pci
sudo /usr/bin/chmod a+x /dev/vfio
sudo /usr/bin/chmod 0666 /dev/vfio/*
sudo ifconfig p3p2 down
sudo ./dpdk-devbind.py --bind=vfio-pci p3p2
sudo ./dpdk-devbind.py --status
sudo mount -t hugetlbfs none /dev/huge

0000:43:00.1

vpp配置文件

unix {cli-listen /run/vpp/cli-vpp1.sock}
api-segment { prefix vpp1 }
cpu { main-core 0 workers 4}
dpdk {
	# Change default settings for all interfaces
	 dev default {
		# Number of receive queues, enables RSS
		# Default is 1
		 num-rx-queues 4

		# Number of transmit queues, Default is equal
		# to number of worker threads or 1 if no workers treads
		 num-tx-queues 4

		# Number of descriptors in transmit and receive rings
		# increasing or reducing number can impact performance
		# Default is 1024 for both rx and tx
		 num-rx-desc 512
		 num-tx-desc 512

		# VLAN strip offload mode for interface
		# Default is off
		 vlan-strip-offload on
	}

	# Whitelist specific interface by specifying PCI address
	 dev 0000:43:00.1

	# Blacklist specific device type by specifying PCI vendor:device
        # Whitelist entries take precedence
	# blacklist 8086:10fb

	# Set interface name
	# dev 0000:43:00.1 {
	#	name eth0
	# }

	# Specify bonded interface and its slaves via PCI addresses
	#
	# Bonded interface in XOR load balance mode (mode 2) with L3 and L4 headers
	# vdev eth_bond0,mode=2,slave=0000:02:00.0,slave=0000:03:00.0,xmit_policy=l34
	# vdev eth_bond1,mode=2,slave=0000:02:00.1,slave=0000:03:00.1,xmit_policy=l34
	#
	# Bonded interface in Active-Back up mode (mode 1)
	# vdev eth_bond0,mode=1,slave=0000:02:00.0,slave=0000:03:00.0
	# vdev eth_bond1,mode=1,slave=0000:02:00.1,slave=0000:03:00.1

	# Change UIO driver used by VPP, Options are: igb_uio, vfio-pci,
	# uio_pci_generic or auto (default)
	 uio-driver vfio-pci

	# Disable multi-segment buffers, improves performance but
	# disables Jumbo MTU support
	# no-multi-seg

	# Change hugepages allocation per-socket, needed only if there is need for
	# larger number of mbufs. Default is 256M on each detected CPU socket
	 socket-mem 512,512

	# Disables UDP / TCP TX checksum offload. Typically needed for use
	# faster vector PMDs (together with no-multi-seg)
	 no-tx-checksum-offload
}

#plugins { plugin dpdk_plugin.so { disable } }

启动vpp

sudo ./vpp -c ./startup.conf
sudo ./vppctl -s /run/vpp/cli-vpp1.sock

查看接口物理配置

DBGvpp# show hardware-interfaces 
              Name                Idx   Link  Hardware
TenGigabitEthernet43/0/1           1    down  TenGigabitEthernet43/0/1
  Link speed: 10 Gbps
  Ethernet address 90:e2:ba:92:a2:2e
  Intel 82599
    carrier up full duplex mtu 9206 
    flags: pmd maybe-multiseg rx-ip4-cksum
    rx: queues 4 (max 128), desc 512 (min 32 max 4096 align 8)
    tx: queues 4 (max 64), desc 512 (min 32 max 4096 align 8)
    pci: device 8086:10fb subsystem 8086:7a12 address 0000:43:00.01 numa 1
    module: id SFP/SFP+/SFP28, compatibility: 10g_base_lr 10g_base_lrm
            vendor: OLINKPHOTONICS, part OLSP311XL-CD10
            revision: 10, serial: A31180920057, date code: 180903
    max rx packet len: 15872
    promiscuous: unicast off all-multicast off
    vlan offload: strip off filter off qinq off
    rx offload avail:  vlan-strip ipv4-cksum udp-cksum tcp-cksum tcp-lro 
                       macsec-strip vlan-filter vlan-extend jumbo-frame scatter 
                       security keep-crc 
    rx offload active: ipv4-cksum jumbo-frame scatter 
    tx offload avail:  vlan-insert ipv4-cksum udp-cksum tcp-cksum sctp-cksum 
                       tcp-tso macsec-insert multi-segs security 
    tx offload active: multi-segs 
    rss avail:         ipv4 ipv4-tcp ipv4-udp ipv6 ipv6-tcp ipv6-udp ipv6-tcp-ex 
                       ipv6-udp-ex ipv6-ex ipv6-tcp-ex ipv6-udp-ex 
    rss active:        none
    tx burst function: ixgbe_xmit_pkts
    rx burst function: ixgbe_recv_pkts

给网口配置ip

set int state TenGigabitEthernet43/0/1 up
set int ip address TenGigabitEthernet43/0/1 1.1.1.1/24

查看trace信息

trace add dpdk-input 10
show trace


Packet 1

00:01:33:760207: dpdk-input
  TenGigabitEthernet43/0/1 rx queue 3
  buffer 0x96504: current data 0, length 98, buffer-pool 0, ref-count 1, totlen-nifb 0, trace 0x0
                  ext-hdr-valid 
                  l4-cksum-computed l4-cksum-correct 
  PKT MBUF: port 0, nb_segs 1, pkt_len 98
    buf_len 2176, data_len 98, ol_flags 0x182, data_off 128, phys_addr 0x2594180
    packet_type 0x11 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
    rss 0x9777117 fdir.hi 0x0 fdir.lo 0x9777117
    Packet Offload Flags
      PKT_RX_RSS_HASH (0x0002) RX packet with RSS hash result
      PKT_RX_IP_CKSUM_GOOD (0x0080) IP cksum of RX pkt. is valid
      PKT_RX_L4_CKSUM_GOOD (0x0100) L4 cksum of RX pkt. is valid
    Packet Types
      RTE_PTYPE_L2_ETHER (0x0001) Ethernet packet
      RTE_PTYPE_L3_IPV4 (0x0010) IPv4 packet without extension headers
  IP4: 00:1b:21:26:02:56 -> 90:e2:ba:92:a2:2e
  ICMP: 1.1.1.2 -> 1.1.1.1
    tos 0x00, ttl 64, length 84, checksum 0x87a7
    fragment id 0xaefd, flags DONT_FRAGMENT
  ICMP echo_request checksum 0x7ed0
00:01:33:760226: ip4-input-no-checksum
  ICMP: 1.1.1.2 -> 1.1.1.1
    tos 0x00, ttl 64, length 84, checksum 0x87a7
    fragment id 0xaefd, flags DONT_FRAGMENT
  ICMP echo_request checksum 0x7ed0
00:01:33:760236: ip4-lookup
  fib 0 dpo-idx 5 flow hash: 0x00000000
  ICMP: 1.1.1.2 -> 1.1.1.1
    tos 0x00, ttl 64, length 84, checksum 0x87a7
    fragment id 0xaefd, flags DONT_FRAGMENT
  ICMP echo_request checksum 0x7ed0
00:01:33:760241: ip4-local
    ICMP: 1.1.1.2 -> 1.1.1.1
      tos 0x00, ttl 64, length 84, checksum 0x87a7
      fragment id 0xaefd, flags DONT_FRAGMENT
    ICMP echo_request checksum 0x7ed0
00:01:33:760243: ip4-icmp-input
  ICMP: 1.1.1.2 -> 1.1.1.1
    tos 0x00, ttl 64, length 84, checksum 0x87a7
    fragment id 0xaefd, flags DONT_FRAGMENT
  ICMP echo_request checksum 0x7ed0
00:01:33:760244: ip4-icmp-echo-request
  ICMP: 1.1.1.2 -> 1.1.1.1
    tos 0x00, ttl 64, length 84, checksum 0x87a7
    fragment id 0xaefd, flags DONT_FRAGMENT
  ICMP echo_request checksum 0x7ed0
00:01:33:760248: ip4-load-balance
  fib 0 dpo-idx 1 flow hash: 0x00000000
  ICMP: 1.1.1.1 -> 1.1.1.2
    tos 0x00, ttl 64, length 84, checksum 0x17a2
    fragment id 0x1f03, flags DONT_FRAGMENT
  ICMP echo_reply checksum 0x86d0
00:01:33:760249: ip4-rewrite
  tx_sw_if_index 1 dpo-idx 1 : ipv4 via 1.1.1.2 TenGigabitEthernet43/0/1: mtu:9000 001b2126025690e2ba92a22e0800 flow hash: 0x00000000
  00000000: 001b2126025690e2ba92a22e0800450000541f034000400117a2010101010101
  00000020: 0102000086d06a73001b11e5995c00000000a08c0400000000001011
00:01:33:760251: TenGigabitEthernet43/0/1-output
  TenGigabitEthernet43/0/1 l4-cksum-computed l4-cksum-correct l2_hdr_offset_valid l3_hdr_offset_valid 
  IP4: 90:e2:ba:92:a2:2e -> 00:1b:21:26:02:56
  ICMP: 1.1.1.1 -> 1.1.1.2
    tos 0x00, ttl 64, length 84, checksum 0x17a2
    fragment id 0x1f03, flags DONT_FRAGMENT
  ICMP echo_reply checksum 0x86d0
00:01:33:760258: TenGigabitEthernet43/0/1-tx
  TenGigabitEthernet43/0/1 tx queue 4
  buffer 0x96504: current data 0, length 98, buffer-pool 0, ref-count 1, totlen-nifb 0, trace 0x0
                  ext-hdr-valid 
                  l4-cksum-computed l4-cksum-correct l2-hdr-offset 0 l3-hdr-offset 14 
  PKT MBUF: port 0, nb_segs 1, pkt_len 98
    buf_len 2176, data_len 98, ol_flags 0x182, data_off 128, phys_addr 0x2594180
    packet_type 0x11 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
    rss 0x9777117 fdir.hi 0x0 fdir.lo 0x9777117
    Packet Offload Flags
      PKT_RX_RSS_HASH (0x0002) RX packet with RSS hash result
      PKT_RX_IP_CKSUM_GOOD (0x0080) IP cksum of RX pkt. is valid
      PKT_RX_L4_CKSUM_GOOD (0x0100) L4 cksum of RX pkt. is valid
    Packet Types
      RTE_PTYPE_L2_ETHER (0x0001) Ethernet packet
      RTE_PTYPE_L3_IPV4 (0x0010) IPv4 packet without extension headers
  IP4: 90:e2:ba:92:a2:2e -> 00:1b:21:26:02:56
  ICMP: 1.1.1.1 -> 1.1.1.2
    tos 0x00, ttl 64, length 84, checksum 0x17a2
    fragment id 0x1f03, flags DONT_FRAGMENT
  ICMP echo_reply checksum 0x86d0

猜你喜欢

转载自blog.csdn.net/yaochuh/article/details/88824195
今日推荐