All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ben Greear <greearb@candelatech.com>
To: Or Gerlitz <ogerlitz@voltaire.com>
Cc: netdev@vger.kernel.org
Subject: Re: some veth related issues
Date: Tue, 04 Aug 2009 08:47:48 -0700	[thread overview]
Message-ID: <4A785824.2030500@candelatech.com> (raw)
In-Reply-To: <Pine.LNX.4.64.0908041650560.13803@zuben.voltaire.com>

Or Gerlitz wrote:
> I'm trying to do some veth testing and came into couple of issues:
>
> 1. when doing a veth(1,0)->bridge->veth(2,3) test using pktgen the packet size reported
> by the veth and bridge statistics is eight bytes wheres the pkt_size param to pktgen is 64
>
> However, if doing ping -s 22 on a veth(1,0)->bridge->NIC config, the reported packet size
> is 50 which makes sense since the NIC adds/removes the L2 header of 14 bytes.
>
> 2. veth(1,0)->bridge->veth(2,3) pktgen test works in the sense that packets are forwarded
> by the bridge to the veth-(2,3) device pair, but pktgen veth(1,0)->bridge->NIC doesn't work
> - no TX counters are increased on the NIC (I run some traffic "from" veth-3 and the NIC devices
> to avoid the bridge flooding path).
>   

Try setting clone to 0.  Might be that sending cloned pkts over veth is 
a bad idea.

Thanks,
Ben

> To debug the issue failure to get veth(1,0)->bridge->NIC config working, I removed the bridge,
> run pktgen over veth1 and opened a tcpdump on veth0, the resulted dump looks quite bad, see below.
>
> Here's some data, any ideas will be very much appreciated, this is 2.6.30
>
> Or.
>
> ping on veth(1,0)->bridge->NIC the reported packet size (bytes/packets) is 64 on eth1 and 50 on veth1/0
>
> Inter-|   Receive                                                |  Transmit
>  face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets
>   eth1:24911352  389240    0    0    0     0          0         0 24926644  389304
>  veth1:19466002  389256    0    0    0     0          0         0 19468999  389270
>  veth0:19468999  389270    0    0    0     0          0         0 19466002  389256
>
> pktgen veth(1,0)->bridge->veth(2,3) the reported packet size is 8 on veth1 and veth3 but
> the pkt_size param was 64
>
> Inter-|   Receive                                                |  Transmit
>  face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets
>  veth1:    4066      17    0    0    0     0          0         0 80007992 10000030
>  veth0:80007992 10000030    0    0    0     0          0         0     4066      17
>  veth3:80004818 10000012    0    0    0     0          0         0     6370      30
>  veth2:    6370      30    0    0    0     0          0         0 80004818 10000012
>
>
> here's the tcpdump output, I told pktgen to send 10 packets and delay for a second between packets,
> to make sure tcpdump captures everything. The first packet is what I was expecting, but none of the
> ones that follow... below is the pktgen script I used and some config info
>
> 72:ec:8e:4f:89:01 > 72:ec:8e:4f:89:03, ethertype IPv4 (0x0800), length 64: 20.20.49.11.discard > 20.20.49.13.discard: UDP, length 22
> 00:00:20:11:ab:09 > 45:00:00:32:65:72, ethertype Unknown (0x1414), length 50:
> 	0x0000:  310b 1414 310d 0009 0009 001e 0000 be9b  1...1...........
> 	0x0010:  e955 0000 0001 4a78 a286 0001 5afc 6d6f  .U....Jx....Z.mo
> 	0x0020:  6465 000a                                de..
> 00:09:00:09:00:1e > 31:0b:14:14:31:0d, 802.3, length 36: LLC, dsap Unknown (0xbe), ssap Unknown (0x9a), cmd 0x55e9: Supervisory, Receiver Ready, rcv seq 42, Flags [Command, Poll], length 22
> 00:01:4a:78:a2:86 > be:9b:e9:55:00:00, 802.3, length 22: LLC, dsap Unknown (0x5a), ssap Unknown (0xfc), cmd 0x6f6d: Supervisory, Receiver not Ready, rcv seq 55, Flags [Command, Poll], length 8
> [|ether]
> [|ether]
> [|ether]
> [|ether]
> [|ether]
> [|ether]
>
> # ifconfig | grep veth
> veth0     Link encap:Ethernet  HWaddr 72:EC:8E:4F:89:00
> veth1     Link encap:Ethernet  HWaddr 72:EC:8E:4F:89:01
> veth2     Link encap:Ethernet  HWaddr 72:EC:8E:4F:89:02
> veth3     Link encap:Ethernet  HWaddr 72:EC:8E:4F:89:03
>
> #! /bin/sh
>
> #modprobe pktgen
>
>
> function pgset() {
>     local result
>
>     echo $1 > $PGDEV
>
>     result=`cat $PGDEV | fgrep "Result: OK:"`
>     if [ "$result" = "" ]; then
>          cat $PGDEV | fgrep Result:
>     fi
> }
>
> function pg() {
>     echo inject > $PGDEV
>     cat $PGDEV
> }
>
> # Config Start Here -----------------------------------------------------------
>
>
> # thread config
> # Each CPU has own thread. Two CPU exammple. We add veth1, eth2 respectivly.
>
> PGDEV=/proc/net/pktgen/kpktgend_0
>   echo "Removing all devices"
>  pgset "rem_device_all"
>   echo "Adding veth1"
>  pgset "add_device veth1"
>   echo "Setting max_before_softirq 10000"
>  pgset "max_before_softirq 10000"
>
>
> # device config
> # delay 0 means maximum speed.
>
> CLONE_SKB="clone_skb 1000000"
> # NIC adds 4 bytes CRC
> PKT_SIZE="pkt_size 64"
>
> # COUNT 0 means forever
> #COUNT="count 0"
> COUNT="count 10"
> DELAY="delay 1000000000"
>
> PGDEV=/proc/net/pktgen/veth1
>   echo "Configuring $PGDEV"
>  pgset "$COUNT"
>  pgset "$CLONE_SKB"
>  pgset "$PKT_SIZE"
>  pgset "$DELAY"
>
>  pgset "src_min 20.20.49.11"
>  pgset "src_max 20.20.49.11"
>  pgset "src_mac 72:ec:8e:4f:89:01"
>
>  pgset "dst 20.20.49.13"
>  pgset "dst_mac 72:ec:8e:4f:89:03"
>
> # Time to run
> PGDEV=/proc/net/pktgen/pgctrl
>
>  echo "Running... ctrl^C to stop"
>  pgset "start"
>  echo "Done"
>
> # Result can be vieved in /proc/net/pktgen/veth1
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>   


-- 
Ben Greear <greearb@candelatech.com> 
Candela Technologies Inc  http://www.candelatech.com



  reply	other threads:[~2009-08-04 15:47 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-04 14:30 some veth related issues Or Gerlitz
2009-08-04 15:47 ` Ben Greear [this message]
2009-08-05  4:40   ` Or Gerlitz
2009-08-05  4:48     ` Ben Greear
2009-08-05  5:41       ` bridge vs macvlan performance (was: some veth related issues) Or Gerlitz
2009-08-05  5:50         ` bridge vs macvlan performance Ben Greear
2009-08-05  5:50         ` Ben Greear
2009-08-05  7:02           ` Or Gerlitz
2009-08-05  7:02           ` Or Gerlitz
2009-08-05  5:41       ` bridge vs macvlan performance (was: some veth related issues) Or Gerlitz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4A785824.2030500@candelatech.com \
    --to=greearb@candelatech.com \
    --cc=netdev@vger.kernel.org \
    --cc=ogerlitz@voltaire.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.