cscrj / netmap

Automatically exported from code.google.com/p/netmap
0 stars 0 forks source link

Something wrong with Netmap bridge #42

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1.[sjm@isms examples]./bridge -i netmap:eth0 -i netmap:eth1
now everythings ok.

2.pull out eth1's cable ,then insert it back to eth1.
now the bridge has been broken.

3.then "ifdown eth1" and "ifup eth1",the bridge works well again.

What is the expected output? What do you see instead?
--On FreeBSD, it works well ,when i insert the cable back ,the bridge works fine

What version of the product are you using? On what operating system?
--I think it is the latest version. I download it from here at the day before 
yesterday (Dec. 23 2014)
I use it on Centos 6.5 ,kernel version is 3.0.88.
FreeBSD version is 10.1
My ethernet device is Intel Corporation 82583V Gigabit Network Connection
Drivers are  e1000e(linux) and em(FreeBSD).

Please provide any additional information below.
--When I try to add some debug print,i find a strange thing.
if I add some print code like D("just test"); into the function 
"netmap_common_irq",the bridge works again! But it is unstable,not every packet 
was transmited.

code like this:
2995         } else { /* TX path */
2996                 if (q >= na->num_tx_rings)
2997                         return; // not a physical queue
2998                 kring = na->tx_rings + q;
2999                 na->nm_notify(na, q, NR_TX, 0);
3000         }
3001 //      D("SJM:just test\n");
3002 } /* netmap common irq*/
the file is $SRC/netmap/sys/dev/netmap/netmap.c

Original issue reported on code.google.com by sjm....@gmail.com on 25 Dec 2014 at 9:28

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
the line 3001 is  D("SJM:just test"); without "//"

Original comment by sjm....@gmail.com on 25 Dec 2014 at 9:47