• Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Search
  • Register
  • Login
Netgate Discussion Forum
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Search
  • Register
  • Login

Issue with more than one SR-IOV interface

Scheduled Pinned Locked Moved TNSR
7 Posts 2 Posters 2.6k Views
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S
    SANEPLJ
    last edited by SANEPLJ May 8, 2021, 2:10 PM May 8, 2021, 2:07 PM

    I have an TNSR router VM on a KVM host lab and i have passed though 2x SR-IOV nics off my intel x520 of which the first is working fine on the second nic on the TNSR seems to transmit traffic i have confirmed this doing a packet capture,
    but Receive on the otherhand it does not. jumping into the host shell and into vpp cli doing a show interface.

    You can see below nic 6/0/0 there is something wrong if you compare to 5/0/0 which is working it has transmit and recive packets on both interfaces. maybe issue with punt redirect?

    Working interface in green Non working one in Red

    vpp# show interface
    Name Idx State MTU (L3/IP4/IP6/MPLS) Counter Count
    VirtualFunctionEthernet5/0/0 1 up 1500/0/0/0
    rx packets 15
    rx bytes 2376
    tx packets 32
    tx bytes 2656
    drops 12
    ip4 10
    tx-error 6
    VirtualFunctionEthernet5/0/0.50 7 up 1500/0/0/0
    rx packets 3
    rx bytes 612
    tx packets 11
    tx bytes 942
    ip4 3
    VirtualFunctionEthernet5/0/0.60 9 up 1500/0/0/0
    rx packets 5794147
    rx bytes 8012565552
    tx packets 13544268
    tx bytes 20238759100
    drops 11
    ip4 5794135
    VirtualFunctionEthernet6/0/0 2 up 1500/0/0/0
    tx packets 62
    tx bytes 4012
    tx-error 1
    VirtualFunctionEthernet6/0/0.10 11 up 1500/0/0/0
    tx packets 47
    tx bytes 2758
    local0 0 down 0/0/0/0 drops 6
    tap1 4 up 1500/0/0/0
    rx packets 24
    rx bytes 1944
    tx packets 3
    tx bytes 612
    ip6 8
    tap1.50 8 up 0/0/0/0
    rx packets 8
    rx bytes 672
    tx packets 3
    tx bytes 612
    ip6 8
    tap1.60 10 up 0/0/0/0
    rx packets 8
    rx bytes 652
    ip6 8
    tap2 5 up 1500/0/0/0
    rx packets 55
    rx bytes 3310
    drops 1
    ip6 12
    tap2.10 12 up 0/0/0/0
    rx packets 43
    rx bytes 2354
    ip6 10

    I can not see any difference between them in the punt redirect config either.

    vpp# show ip punt redirect
    rx VirtualFunctionEthernet5/0/0 via:
    path-list:[13] locks:1 flags:no-uRPF, uRPF-list: None
    path:[13] pl-index:13 ip4 weight=1 pref=0 dvr: oper-flags:resolved,
    tap1
    forwarding
    [@3]: ip4-dvr-tap1-dpo l3
    rx VirtualFunctionEthernet6/0/0 via:
    path-list:[15] locks:1 flags:no-uRPF, uRPF-list: None
    path:[15] pl-index:15 ip4 weight=1 pref=0 dvr: oper-flags:resolved,
    tap2
    forwarding
    [@3]: ip4-dvr-tap2-dpo l3
    rx VirtualFunctionEthernet5/0/0.50 via:
    path-list:[32] locks:1 flags:no-uRPF, uRPF-list: None
    path:[32] pl-index:32 ip4 weight=1 pref=0 dvr: oper-flags:resolved,
    tap1.50
    forwarding
    [@3]: ip4-dvr-tap1.50-dpo l3
    rx VirtualFunctionEthernet5/0/0.60 via:
    path-list:[34] locks:1 flags:no-uRPF, uRPF-list: None
    path:[34] pl-index:34 ip4 weight=1 pref=0 dvr: oper-flags:resolved,
    tap1.60
    forwarding
    [@3]: ip4-dvr-tap1.60-dpo l3
    rx VirtualFunctionEthernet6/0/0.10 via:
    path-list:[60] locks:1 flags:no-uRPF, uRPF-list: None
    path:[86] pl-index:60 ip4 weight=1 pref=0 dvr: oper-flags:resolved,
    tap2.10
    forwarding
    [@3]: ip4-dvr-tap2.10-dpo l3

    Any clues of the issue here or has anyone else had a similer issue?

    Below is the TNSR config file out and various others


    localhost tnsr# show configuration running cli
    nacm enable
    nacm read-default deny
    nacm write-default deny
    nacm exec-default deny
    nacm group admin
    member root
    member tnsr
    exit
    nacm rule-list admin-rules
    group admin
    rule permit-all
    module *
    access-operations "*"
    action permit
    exit
    exit

    dataplane cpu workers 6
    dataplane ethernet default-mtu 1500
    dataplane dpdk dev 0000:05:00.0 network tso on
    dataplane dpdk dev 0000:05:00.0 network num-rx-queues 2
    dataplane dpdk dev 0000:05:00.0 network num-tx-queues 2
    dataplane dpdk dev 0000:06:00.0 network tso on
    dataplane dpdk uio-driver igb_uio
    dataplane buffers buffers-per-numa 32768
    dataplane statseg heap-size 1G

    nat global-options nat44 enabled false

    route table tet
    id 1
    exit

    interface subif VirtualFunctionEthernet5/0/0 50
    exact-match
    outer-dot1q 50
    exit
    interface subif VirtualFunctionEthernet5/0/0 60
    exact-match
    outer-dot1q 60
    exit
    interface subif VirtualFunctionEthernet6/0/0 10
    exact-match
    outer-dot1q 10
    exit

    interface VirtualFunctionEthernet5/0/0
    enable
    exit
    interface VirtualFunctionEthernet5/0/0.50
    enable
    ip address 10.10.10.1/24
    exit
    interface VirtualFunctionEthernet5/0/0.60
    enable
    ip address 10.11.11.1/24
    exit
    interface VirtualFunctionEthernet6/0/0
    enable
    exit
    interface VirtualFunctionEthernet6/0/0.10
    enable
    ip address 172.81.81.231/24
    exit
    interface gigatbit
    disable
    exit

    nat ipfix logging domain 1
    nat ipfix logging src-port 4739
    nat nat64 map parameters
    security-check enable
    exit

    route dynamic manager
    exit

    route dynamic ospf6
    exit

    route dynamic bgp
    disable
    exit

    route dynamic ospf
    exit

    route dynamic rip
    exit

    dhcp4 server
    lease persist true
    lease lfc-interval 0
    interface socket raw
    exit

    unbound server
    enable ip4
    enable tcp
    enable udp
    enable harden glue
    enable hide identity
    port outgoing range 4096
    exit

    snmp host disable

    ssh dataplane enable



    localhost tnsr# show interface
    Interface: VirtualFunctionEthernet5/0/0
    Admin status: up
    Link up, link-speed 10 Gbps, full duplex
    Link MTU: 1500 bytes
    MAC address: 02:09:c0:09:83:4a
    IPv4 MTU: 0 bytes
    IPv4 Route Table: ipv4-VRF:0
    IPv6 MTU: 0 bytes
    IPv6 Route Table: ipv6-VRF:0
    IPv6 addresses:
    fe80::9:c0ff:fe09:834a/64
    VLAN tag rewrite: disable
    Rx-queues
    queue-id 0 : cpu-id 2
    queue-id 1 : cpu-id 3
    counters:
    received: 28251366540 bytes, 19338631 packets, 0 errors
    transmitted: 28251329946 bytes, 19338480 packets, 6 errors
    protocols: 190 IPv4, 0 IPv6
    214 drops, 0 punts, 0 rx miss, 0 rx no buffer

    Interface: VirtualFunctionEthernet5/0/0.50
    Admin status: up
    Link up, link-speed 10 Gbps, full duplex
    Link MTU: 1500 bytes
    IPv4 MTU: 0 bytes
    IPv4 Route Table: ipv4-VRF:0
    IPv4 addresses:
    10.10.10.1/24
    IPv6 MTU: 0 bytes
    IPv6 Route Table: ipv6-VRF:0
    IPv6 addresses:
    fe80::9:c0ff:fe09:834a/64
    VLAN tag rewrite: disable
    counters:
    received: 20238768684 bytes, 13544292 packets, 0 errors
    transmitted: 8012567788 bytes, 5794175 packets, 0 errors
    protocols: 13544281 IPv4, 0 IPv6
    11 drops, 0 punts, 0 rx miss, 0 rx no buffer

    Interface: VirtualFunctionEthernet5/0/0.60
    Admin status: up
    Link up, link-speed 10 Gbps, full duplex
    Link MTU: 1500 bytes
    IPv4 MTU: 0 bytes
    IPv4 Route Table: ipv4-VRF:0
    IPv4 addresses:
    10.11.11.1/24
    IPv6 MTU: 0 bytes
    IPv6 Route Table: ipv6-VRF:0
    IPv6 addresses:
    fe80::9:c0ff:fe09:834a/64
    VLAN tag rewrite: disable
    counters:
    received: 8012565552 bytes, 5794147 packets, 0 errors
    transmitted: 20238759280 bytes, 13544270 packets, 0 errors
    protocols: 5794135 IPv4, 0 IPv6
    11 drops, 0 punts, 0 rx miss, 0 rx no buffer

    Interface: VirtualFunctionEthernet6/0/0
    Admin status: up
    Link up, link-speed 10 Gbps, full duplex
    Link MTU: 1500 bytes
    MAC address: 02:09:c0:94:92:12
    IPv4 MTU: 0 bytes
    IPv4 Route Table: ipv4-VRF:0
    IPv6 MTU: 0 bytes
    IPv6 Route Table: ipv6-VRF:0
    IPv6 addresses:
    fe80::9:c0ff:fe94:9212/64
    VLAN tag rewrite: disable
    Rx-queues
    queue-id 0 : cpu-id 4
    counters:
    received: 0 bytes, 0 packets, 0 errors
    transmitted: 8268 bytes, 112 packets, 1 errors
    protocols: 0 IPv4, 0 IPv6
    0 drops, 0 punts, 0 rx miss, 0 rx no buffer

    Interface: VirtualFunctionEthernet6/0/0.10
    Admin status: up
    Link up, link-speed 10 Gbps, full duplex
    Link MTU: 1500 bytes
    IPv4 MTU: 0 bytes
    IPv4 Route Table: ipv4-VRF:0
    IPv4 addresses:
    172.81.81.231/24
    IPv6 MTU: 0 bytes
    IPv6 Route Table: ipv6-VRF:0
    IPv6 addresses:
    fe80::9:c0ff:fe94:9212/64
    VLAN tag rewrite: disable
    counters:
    received: 0 bytes, 0 packets, 0 errors
    transmitted: 4928 bytes, 72 packets, 0 errors
    protocols: 0 IPv4, 0 IPv6
    0 drops, 0 punts, 0 rx miss, 0 rx no buffer

    1 Reply Last reply Reply Quote 0
    • S
      SANEPLJ
      last edited by SANEPLJ May 8, 2021, 7:46 PM May 8, 2021, 7:44 PM

      Diagram Of Lab

      af9d341f-05b3-4849-a7a9-3a90155b9de3-image.png

      DerelictD 1 Reply Last reply May 9, 2021, 2:33 PM Reply Quote 0
      • DerelictD
        Derelict LAYER 8 Netgate @SANEPLJ
        last edited by May 9, 2021, 2:33 PM

        @saneplj

        The first thing I would do is remove these and see if anything changes:

        dataplane cpu workers 6
        dataplane dpdk dev 0000:05:00.0 network tso on
        dataplane dpdk dev 0000:05:00.0 network num-rx-queues 2
        dataplane dpdk dev 0000:05:00.0 network num-tx-queues 2
        dataplane dpdk dev 0000:06:00.0 network tso on
        dataplane statseg heap-size 1G
        

        And why are you using outer-dot1q instead of just dot1q to set the VLAN tags?

        Chattanooga, Tennessee, USA
        A comprehensive network diagram is worth 10,000 words and 15 conference calls.
        DO NOT set a source address/port in a port forward or firewall rule unless you KNOW you need it!
        Do Not Chat For Help! NO_WAN_EGRESS(TM)

        S 1 Reply Last reply May 9, 2021, 6:51 PM Reply Quote 0
        • S
          SANEPLJ @Derelict
          last edited by May 9, 2021, 6:51 PM

          @derelict Hi and thanks for replying, In relation to you point outer-dot1q, that is a good point, in the TNSR cli I do actually enter dot1q not outer-dot1q but it always seems to apply outer-dot1q even looking at the help output look at below output.

          17e38223-2100-400f-abd3-c372a60b7f3e-image.png

          018443a1-4a56-48d9-b7ef-7459fb46d9d4-image.png

          I have removed all the config you have suggested even though the issue was present before i added them, but sadly nothing has changed still having the same issue.

          As a test i will try removing the subinterface config within TNSR cli and will try configuring directly within VPP CLI. I will update you once done.

          Mean while if you have any other surgestions please let me know.

          Thanks again.

          DerelictD 1 Reply Last reply May 10, 2021, 12:36 AM Reply Quote 0
          • DerelictD
            Derelict LAYER 8 Netgate @SANEPLJ
            last edited by May 10, 2021, 12:36 AM

            @saneplj I would also be working with 21.03.1-1 that was released last week even though there is not anything I can think of that addresses things like this.

            Chattanooga, Tennessee, USA
            A comprehensive network diagram is worth 10,000 words and 15 conference calls.
            DO NOT set a source address/port in a port forward or firewall rule unless you KNOW you need it!
            Do Not Chat For Help! NO_WAN_EGRESS(TM)

            S 2 Replies Last reply May 12, 2021, 9:32 PM Reply Quote 0
            • S
              SANEPLJ @Derelict
              last edited by SANEPLJ May 12, 2021, 9:32 PM May 12, 2021, 9:32 PM

              @derelict Hi, I Moved to the latest version 21.03.1-1 but same result. Tried configuring directly within the vpp cli still have the same issues on reciving packets on secound SR-IOV interface.

              I disabled SR-IOV and passed though both physical nic ports same config using same driver igb_uio and they both function as expected, both receiving and transmiting data.

              I can confirm passing multiple SR-IOV interfaces though any other VM's on platforms Linux, Windows, Cisco CSRv and ASAv all interfaces work just fine.

              This seems to be a specific issue with TNSR/VPP with multiple SR-IOV interfaces off an Intel x520 as far as i can determine.

              1 Reply Last reply Reply Quote 0
              • S
                SANEPLJ @Derelict
                last edited by SANEPLJ Oct 28, 2021, 9:47 PM Oct 28, 2021, 9:46 PM

                @derelict Thought i would give this another shot on the latest code v21.01-588~tnsr_v21.07_1~g31b3e823e, but to no avail, but i did find somting interesting using the show hardware-interface command in vppctl it is seeing the non working interface VirtualFunctionEthernet6/0/0 MTU at 9206 and the admin up flag is not present and this error [rte_eth_dev_start[port:1, errno:-22]: Unknown error -22]. any Ideas how to look/debug further into this or do yo know what this error is?

                I have also included working interface VirtualFunctionEthernet5/0/0 for comparison

                vpp# sh hardware-interfaces
                Name Idx Link Hardware
                VirtualFunctionEthernet5/0/0 1 up VirtualFunctionEthernet5/0/0
                Link speed: 10 Gbps
                RX Queues:
                queue thread mode
                0 main (0) polling
                Ethernet address 02:09:c0:99:4a:be
                Intel 82599 VF
                carrier up full duplex mtu 1500
                flags: admin-up pmd maybe-multiseg subif tx-offload intel-phdr-cksum rx-ip4-cksum
                rx: queues 1 (max 2), desc 1024 (min 32 max 4096 align 8)
                tx: queues 1 (max 2), desc 1024 (min 32 max 4096 align 8)
                pci: device 8086:10ed subsystem 8086:000c address 0000:05:00.00 numa 0
                max rx packet len: 9728
                promiscuous: unicast off all-multicast on
                vlan offload: strip off filter off qinq off
                rx offload avail: vlan-strip ipv4-cksum udp-cksum tcp-cksum vlan-filter
                jumbo-frame scatter keep-crc rss-hash
                rx offload active: ipv4-cksum jumbo-frame scatter
                tx offload avail: vlan-insert ipv4-cksum udp-cksum tcp-cksum sctp-cksum
                tcp-tso multi-segs
                tx offload active: udp-cksum tcp-cksum multi-segs
                rss avail: ipv4-tcp ipv4-udp ipv4 ipv6-tcp-ex ipv6-udp-ex ipv6-tcp
                ipv6-udp ipv6-ex ipv6
                rss active: ipv4-tcp ipv6-tcp-ex ipv6-tcp ipv6-udp ipv6-ex
                tx burst function: ixgbe_xmit_pkts
                rx burst function: ixgbe_recv_scattered_pkts_vec

                tx frames ok                                          86
                tx bytes ok                                         7258
                rx frames ok                                        1325
                rx bytes ok                                       191694
                extended stats:
                  rx_good_packets                                   1325
                  tx_good_packets                                     86
                  rx_good_bytes                                   191694
                  tx_good_bytes                                     7258
                  rx_multicast_packets                              1550
                

                VirtualFunctionEthernet6/0/0 2 up VirtualFunctionEthernet6/0/0
                Link speed: 10 Gbps
                RX Queues:
                queue thread mode
                0 main (0) polling
                Ethernet address 02:09:c0:c1:84:fc
                Intel 82599 VF
                carrier up full duplex mtu 9206
                flags: pmd maybe-multiseg subif tx-offload intel-phdr-cksum rx-ip4-cksum
                rx: queues 1 (max 2), desc 1024 (min 32 max 4096 align 8)
                tx: queues 1 (max 2), desc 1024 (min 32 max 4096 align 8)
                pci: device 8086:10ed subsystem 8086:000c address 0000:06:00.00 numa 0
                max rx packet len: 9728
                promiscuous: unicast off all-multicast off
                vlan offload: strip off filter on qinq off
                rx offload avail: vlan-strip ipv4-cksum udp-cksum tcp-cksum vlan-filter
                jumbo-frame scatter keep-crc rss-hash
                rx offload active: ipv4-cksum jumbo-frame scatter
                tx offload avail: vlan-insert ipv4-cksum udp-cksum tcp-cksum sctp-cksum
                tcp-tso multi-segs
                tx offload active: udp-cksum tcp-cksum multi-segs
                rss avail: ipv4-tcp ipv4-udp ipv4 ipv6-tcp-ex ipv6-udp-ex ipv6-tcp
                ipv6-udp ipv6-ex ipv6
                rss active: ipv4-tcp ipv6-tcp-ex ipv6-tcp ipv6-udp ipv6-ex
                tx burst function: ixgbe_xmit_pkts
                rx burst function: ixgbe_recv_pkts

                rx frames ok                                  4294966922
                rx bytes ok                                  68719442425  Errors:
                rte_eth_dev_start[port:1, errno:-22: Unknown error -22
                

                Thanks.

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post
                Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.
                  This community forum collects and processes your personal information.
                  consent.not_received