[dpdk-dev] help: ixgbevf can receive but can't xmit packets on X550EM_x_vf

Bill Bonaparte programme110 at gmail.com
Wed Apr 19 09:55:46 CEST 2017

    I want to get help from you. I have tried my best, but I still have no
idea about this problem.
    I need to use SR-IOV on my environment,  when using 82599_vf, it works
fine, but when I ran it on X550EM_x_vf, it can receive packets but cant
xmit packets which means it can't send out from pf and can't catpure the
packets by tcpdump on peer machine.
    I have turnoff the spoof checking on the vf.  so, it should not be the
source mac mismatch problem.
    by the way, to this problem, I found a weird symptom as following:
    initially, the vf link is up. and everything seems ok. when I start to
send packets using the vf, the vf link becomes down. by the code debug, I
located the specific code which trigger the link down.
    in the xmit function ixgbe_xmit_pkts_vec, it will issue the following
register written after put packets into the tx ring.
    IXGBE_PCI_REG_WRITE(txq->tdt_reg_addr, txq->tx_tail);
once this register written, the link check function
ixgbe_check_mac_link_vf  will
check that NACK is set, and then set link down subsequently.
 the code segments from ixgbe_check_mac_link_vf list here:
 /* if the read failed it could just be a mailbox collision, best wait
 * until we are called again and don't report an error
if ((ret = mbx->ops.read(hw, &in_msg, 1, 0))) {
DEBUGCHK("ixgbe_read_mbx_vf failed. ret=%d\n", ret);
goto out;

if (!(in_msg & IXGBE_VT_MSGTYPE_CTS)) {
/* msg is not CTS and is NACK we must have lost CTS status */
if (in_msg & IXGBE_VT_MSGTYPE_NACK) {
DEBUGCHK("Error: NACK is set\n");
ret_val = -1;
goto out;

I really need your help.
Appreciate any comments and reply.

More information about the dev mailing list