Wireshark-dev: Re: [Wireshark-dev] tshark fails to capture packet on IB interface

From: Guy Harris <guy@xxxxxxxxxxxx>
Date: Tue, 19 Sep 2006 19:45:33 -0700

On Sep 18, 2006, at 5:41 AM, Sharma, Karun wrote:

I am trying to capture packets on Infiniband interface but getting error (see below). tshark is working fine for eth0 interface. I am using 0.99.4 version and RHEL4 up3 x86_64 machine.
Is there any known solution/workaround for this issue?

Yes - as per

	https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=180980

the workaround is "don't use the current version of RHEL4, use some distribution with a kernel without the EOVERFLOW 'fix'".

Can you please send me a patch to solve this issue.

No, because I don't have the Linux kernel source handy at present, but what you want to do is edit net/core/dev.c, look for "case SIOCGIFHWADDR:" somewhere around line 2362, and change the code to do

		case SIOCGIFHWADDR:
		{
			size_t copylen;

			copylen = dev->addr_len;
			if (copylen > sizeof ifr->ifr_hwaddr.sa_data)
				copylen = sizeof ifr->ifr_hwaddr.sa_data;
			memset(ifr->ifr_hwaddr.sa_data, 0, sizeof ifr->ifr_hwaddr.sa_data);
			memcpy(ifr->ifr_hwaddr.sa_data, dev->dev_addr, copylen);
			ifr->ifr_hwaddr.sa_family = dev->type;
			return 0;
		}

and then recompile the kernel and install the new kernel.

(This isn't a patch to Wireshark, but the problem isn't *in* Wireshark, it's in the Linux kernel, so the change is to the Linux kernel.)