[dpdk-dev] KNI interface operational state UP issue

Aziz Hajee aziz at saisei.com
Thu Jan 15 01:59:53 CET 2015


Yes, the DPDK reports port is UP.
By the following change in the registered callback function to comment out
stop/start the dpdk interface, I can bring the KNI vEthX interfaces up:
(I guess, the reason is the ret value is now the default ret = 0, and no
error from stop/start. )

kni_config_network_interface(uint8_t port_id, uint8_t if_up)
{
        int ret = 0;

        if (port_id >= rte_eth_dev_count() || port_id >= RTE_MAX_ETHPORTS) {
                RTE_LOG(ERR, KNI, "Invalid port id %d\n", port_id);
                return -EINVAL;
        }

        RTE_LOG(INFO, KNI, "Configure network interface of %d %s\n",
                                        port_id, if_up ? "up" : "down");

//        if (if_up != 0) { /* Configure network interface up */
//                rte_eth_dev_stop(port_id);
//                ret = rte_eth_dev_start(port_id);
//        } else /* Configure network interface down */
//                rte_eth_dev_stop(port_id);

        if (ret < 0)
                RTE_LOG(ERR, KNI, "Failed to start port %d\n", port_id);

Question:
1. Where does the vEth0 ifname given to the ifconfig command, gets mapped
to the dpdk port_id 0 in the callback

thanks.
-aziz

===================================

# ifconfig vEth0
vEth0     Link encap:Ethernet  HWaddr 00:00:00:00:00:00
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:13 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3186 (3.1 KB)  TX bytes:0 (0.0 B)

# ifconfig vEth0 192.16.1.1
# ifconfig vEth0
vEth0     Link encap:Ethernet  HWaddr 90:e2:ba:5f:1a:64
          inet addr:192.16.1.1  Bcast:192.16.1.255  Mask:255.255.255.0
          inet6 addr: fe80::92e2:baff:fe5f:1a64/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:13 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:37 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3186 (3.1 KB)  TX bytes:0 (0.0 B)



On Mon, Jan 12, 2015 at 3:24 AM, Bruce Richardson <
bruce.richardson at intel.com> wrote:

> On Fri, Jan 09, 2015 at 05:20:26PM -0800, Aziz Hajee wrote:
> > I am using the dpdk1.6.0r1
> > The rte_kni.lo is loaded:
> > lsmod | grep kni
> > rte_kni               279134  1
> >
> > however, the ifconfig vEth0, and vEth1 does not show link up ?
> > How do i get the operational state up for these interfaces.
> > $ sudo tcpdump -i vEth0
> > tcpdump: vEth0: That device is not up
> >
> > ifconfig vEth0
> > vEth0     Link encap:Ethernet  HWaddr 00:00:00:00:00:00
> >           BROADCAST MULTICAST  MTU:1500  Metric:1
> >           RX packets:12 errors:0 dropped:0 overruns:0 frame:0
> >           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
> >           collisions:0 txqueuelen:1000
> >           RX bytes:3388 (3.3 KB)  TX bytes:0 (0.0 B)
> >
> >  ifconfig vEth1
> > vEth1     Link encap:Ethernet  HWaddr 00:00:00:00:00:00
> >           BROADCAST MULTICAST  MTU:1500  Metric:1
> >           RX packets:60 errors:0 dropped:0 overruns:0 frame:0
> >           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
> >           collisions:0 txqueuelen:1000
> >           RX bytes:10252 (10.2 KB)  TX bytes:0 (0.0 B)
> >
> > These KNI interfaces are created as per dmeg below from the CREATE IOCTL.
> > sudo ifconfig vEth0 192.168.0.11 netmask 255.255.0.0
> > SIOCSIFFLAGS: Timer expired
> > aziz at fast-1
> :~/stm15-0108/stm/dpdk/dpdk-1.6.0r1_ss/lib/librte_eal/linuxapp/kni$
> > ifconfig vEth0
> > vEth0     Link encap:Ethernet  HWaddr 90:e2:ba:5f:1a:64
> >           inet addr:192.168.0.11  Bcast:192.168.255.255  Mask:255.255.0.0
> >           BROADCAST MULTICAST  MTU:1500  Metric:1
> >           RX packets:50 errors:0 dropped:0 overruns:0 frame:0
> >           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
> >           collisions:0 txqueuelen:1000
> >           RX bytes:14488 (14.4 KB)  TX bytes:0 (0.0 B)
> >
> > Trying to set the vEth0 up, looks like it is doing the callback in the
> dpdk
> > to the corresponding PMD NIC interface, and not the vEth0 kernel
> interface.
> >
> With KNI, the actual underlying NIC interface is still under the control
> of the
> DPDK application. What happens is that any ethtool requests that go to the
> kernel
> driver, get passed into the userspace DPDK application to make the actual
> changes
> to the hardware port. Does DPDK itself report the port as being up?
>
> /Bruce
>


More information about the dev mailing list