Hi all, I should be able to access skb->mac.{ethernet, raw} ahter eth_type_trans(skb, dev), but nevertheless I used skb->data in the code below. At this point, only a series of consecutive numbers ar
I assume that after eth_type_trans the skb->data pointer is at the first position of the IP header. Then *(skb->data+9) should be the IP protocol (i.e. 17 for UDP), and *(skb->data+20) should be the
I had previously guessed that you had selected the 3c905C for its various features, including checksum and real-time support. But you don't seem to be using the special hardware at all. .... Why did
As a matter of fact, I did retain some of the hardware checksum as in "if (rx_status & RxDError)", but you are right in saying that I should keep the hardware TCP & UDP checksum as well, thanks. Tha
... If you are accessing a 32 bit number, you should use a "naturally aligned" address. In your previous example you were using (int *)(base + 21) If "base" is aligned, base+21 will be misaligned for
Then I should be fine, as my original code read: *(((unsigned int *) (skb->data+20)) + 1) I was under the assumption that int was 16 bits on x86, but Rene corrected me ("int = 32Bit @ linux"). I wil
Hi all, I should be able to access skb->mac.{ethernet, raw} ahter eth_type_trans(skb, dev), but nevertheless I used skb->data in the code below. At this point, only a series of consecutive numbers ar
I assume that after eth_type_trans the skb->data pointer is at the first position of the IP header. Then *(skb->data+9) should be the IP protocol (i.e. 17 for UDP), and *(skb->data+20) should be the
I had previously guessed that you had selected the 3c905C for its various features, including checksum and real-time support. But you don't seem to be using the special hardware at all. .... Why did
As a matter of fact, I did retain some of the hardware checksum as in "if (rx_status & RxDError)", but you are right in saying that I should keep the hardware TCP & UDP checksum as well, thanks. Tha
... If you are accessing a 32 bit number, you should use a "naturally aligned" address. In your previous example you were using (int *)(base + 21) If "base" is aligned, base+21 will be misaligned for
Then I should be fine, as my original code read: *(((unsigned int *) (skb->data+20)) + 1) I was under the assumption that int was 16 bits on x86, but Rene corrected me ("int = 32Bit @ linux"). I wil