Hi: 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.