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