[dpdk-dev] Unable to change source MAC address of packet

Padam Jeet Singh padam.singh at inventum.net
Thu Oct 27 16:45:13 CEST 2016


> On 27-Oct-2016, at 7:37 pm, Wiles, Keith <keith.wiles at intel.com> wrote:
> 
> 
>> On Oct 27, 2016, at 6:33 AM, Padam Jeet Singh <padam.singh at inventum.net> wrote:
>> 
>> Hi,
>> 
>> I am crafting a packet in which the source MAC address as set in the Ethernet header is different than the transmit port’s default MAC address. A packet capture of the packets coming out of this port however comes with source MAC address of the port’s default MAC address.
>> 
>> Altering the destination MAC address works fine and shows up correctly in packet capture.
>> 
>> The underlying network interface is an i210 and some logs added to the eth_igb_xmit_pkts function show that the packets I have crafted indeed are reaching the driver with the source MAC address set in the packet code of the application.
>> 
>> How can I disable this automatic source MAC address setting?
> 
> The packets sent with rte_eth_tx_burst() are not forced to a give MAC address. If you are using something on top of DPDK like Pktgen or OVS or something, then it may try to force a source MAC address.

No… not using pktgen or OVS. Plain simple code to take a packets from a KNI, change source mac address on all received packets,  and then tx_burst them to a port.

> Maybe the hardware does it, but we need to know the NIC being used and then someone maybe able to answer. I do not know of any Intel NICs do that.

Intel i210 NIC (gigabit Ethernet) is being used. I have gone through the i210 documentation and can’t see anything specific to setting of MAC address in hardware for TX side. For RX side there are validations like MAC filtering, but nothing over TX.

> 
> Is this what you are doing.

I agree that rte_eth_tx_burst does not overwrite the source MAC as I was able to trace all the way to the IGB driver that source mac makes it intact. There is no offload flags enabled in the mbuf. Yet the packets to the other side comes out as with source mac address of the port.

Is there any standard DPDK app which crafts packets with different source MAC than the port’s physical mac? (I checked the l2fwd example loads the port mac before transmitting and then uses the same in TX function).

> 
>> 
>> Thanks,
>> Padam
> 
> Regards,
> Keith
> 


More information about the dev mailing list