On 4/15/2011 6:41 PM, Jean-Mickael Guerin wrote:
> On 4/12/2011 7:32 PM, Tantilov, Emil S wrote:
>>> -----Original Message-----
>>> From: Jean-Mickael Guerin [mailto:[email protected]]
>>> Sent: Thursday, April 07, 2011 12:17 AM
>>> To: [email protected]
>>> Subject: [E1000-devel] CRC stripping on 82598 and 82599
>>>
>>> Hello,
>>>
>>> It seems CRC is not stripped out on 82599, neither on 82598.
>>> The ixgbe driver is setting RDRXCTL for 82599, nothing else.
>>> >From datasheet I found that RDRXCTL.CRCStrip and HLREG0.RXCRCSTRP
>>> must be set to the same value.
>>>
>>> I tested this patch (ixgbe-3.2.10) on 82598: always set
>>> IXGBE_HLREG0_RXCRCSTRP,
>>> and it CRC is stripped now:
>>>
>>> --- a/src/ixgbe_main.c
>>> +++ b/src/ixgbe_main.c
>>> @@ -3439,6 +3439,8 @@ static void ixgbe_set_rx_buffer_len(struct
>>> ixgbe_adapter *adapter)
>>>        hlreg0 = IXGBE_READ_REG(hw, IXGBE_HLREG0);
>>>        /* set jumbo enable since MHADD.MFS is keeping size locked at
>>> max_frame */
>>>        hlreg0 |= IXGBE_HLREG0_JUMBOEN;
>>> +       /* Enable CRC stripping */
>>> +       hlreg0 |= IXGBE_HLREG0_RXCRCSTRP;
>>>        IXGBE_WRITE_REG(hw, IXGBE_HLREG0, hlreg0);
>>>
>>>
>>> I'm going to test on 82599 too.
>>> I can't test for other NIC than 82598 and 82599, may a test for (82598 ||
>>> 82599) should
>>> be added.
>>
>> Thanks for the patch. Are you seeing an issue where the CRC is not being 
>> stripped, or is the patch just to satisfy the requirement in the datasheet?
>>
>> If you are seeing a problem could you provide the values of the HLREG0 and 
>> RDRXCTL? You can use the ethregs tool available for download from 
>> e1000.sf.net. A detailed information about your HW would also be helpful 
>> such as lspci -vvv and ethtool -e.
> 
> I have seen skb->len 4 bytes too long, so at some point the IP stack needs to 
> trim it, I wanted to eliminate this step.
> But I will trace to confirm it as soon as I have the hand on the board again, 
> probably next week.

Finally CRC is correctly stripped by driver, because IXGBE_HLREG0_RXCRCSTRP = 1 
on startup.
I was mistaken by some short packets.
I patched to reset this register to 0, CRC is not stripped as expected, and 
after reboot
IXGBE_HLREG0_RXCRCSTRP starts at 1 whatever the previous value is.

So the patch does not bring anything, or maybe it gives an explicit statement 
about CRC
so that no doubt is permitted.

Regards,
Jean-Mickael

------------------------------------------------------------------------------
Benefiting from Server Virtualization: Beyond Initial Workload 
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve 
application availability and disaster protection. Learn more about boosting 
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
_______________________________________________
E1000-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit 
http://communities.intel.com/community/wired

Reply via email to