read() returns too few data (TAP-mode: MTU != Ethernet Frame Size)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
PyTap |
Fix Committed
|
High
|
Dominik George |
Bug Description
In TAP-Mode I had the problem that larger Ping packets and TCP connections after establishing didn't work over TAP<->pytap<
I found the problem in the read()-method of pytap.py. This code works in TAP-mode (I don't know the consequences in TUN-mode):
...
ETHERNET_
...
def read(self):
data = os.read(
return data
According to http://
http://
the Ethernet frame size is 18 Byte longer than the MTU (with activated VLAN it's 22 Bytes longer, but in Linux VLAN isn't activated as default).
Files:
Modified pytap.py: http://
My current test project (Ethernet-tunnel via TCP): http://
summary: |
- read() returns too few data (MTU != Ethernet Frame Size) + read() returns too few data (TAP-Mode: MTU != Ethernet Frame Size) |
description: | updated |
summary: |
- read() returns too few data (TAP-Mode: MTU != Ethernet Frame Size) + read() returns too few data (TAP-mode: MTU != Ethernet Frame Size) |
Thank you for the report, Stefan.
(Unfortunately Launchpad doesn't e-mail me on new bug reports anymore so I didn't see this earlier ....).
I have implemented a fix that only affects TAP mode, becuase TUN moder is not affected by this.
Please note that development has moved to http:// git.proparity. net/redmine/ projects/ pytap .