host binding problem


Hi team,

I encountered a problem while trying to send packets concurrently through two pairs independent ports using the "-B" options. I have a server and a client machine each with a dual-port 10GbE NIC, they are configured as follows:

server machine:                                      client machine:
eth2 (10.0.0.2)         <--------------->    eth5 (10.0.0.1)
eth3 (10.0.0.4)         <--------------->    eth4 (10.0.0.3)

"<---------------> " represents the physical connection (via fiber optical cables.)

On the server's side, I used the "-B" option to bind two iperf processes to the two ports (eth2 and eth3). Meanwhile two corresponding client iperf processes were binded separately to each of the ports on the client NIC, and started sending packets to their physically-connected ports on the server:
Server: Client:
iperf -s -B 10.0.0.2 <---------------> iperf -c 10.0.0.2 -B 10.0.0.1
iperf -s -B 10.0.0.4 <---------------> iperf -c 10.0.0.4 -B 10.0.0.3


The result expected was a evenly distributed number of interrupts on both ports of the server. Even though on the prompt, iperf did notify that two iperf processes were listening on those two port independently, it turns out (from /proc/interrupts) only the first interconnection was really used for packet transfer (10.0.0.2 <--> 10.0.0.1). Since each packet reception on the server's side and each packet transmission on the client's side raises an interrupt from the NIC, and the number of interrupts on eth2 and eth5 is 1000X greater to that of eth3 and eth4, I thought neither 10.0.0.3 was used for sending packets nor 10.0.0.4 was used for receiving.

I'm not sure if it's a problem with my dual-port NICs or the -B options. Please help.

Thanks,

Danny



Other Mailing lists | Author Index | Date Index | Subject Index | Thread Index