mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Doru Theodor Petrescu <pdoru.kernel@evox.ro>
To: Stephen Hemminger <shemminger@vyatta.com>
Cc: ierdnah@gmail.com, linux-kernel@vger.kernel.org,
	pdoru.kernel@evox.ro, netdev@vger.kernel.org
Subject: Re: tc match MAC destination - nothing matches on protocol 802_3
Date: Thu, 16 Jun 2011 10:56:52 +0300	[thread overview]
Message-ID: <1308211012.12982.36365.camel@u.evox.ro> (raw)
In-Reply-To: <20110615092907.2b79ee66@s6510.ftrdhcpuser.net>



I updated my scripts to use the 'tc filter ... match ether src/dst'
syntax. it really makes reading the script easier. thanks for the tip!

however the problem persists. I changed the rule to match ANY pachet of
type 802_3 and redirect it to ifb1. but nothing arrives on ifb1.

I tried to redirect ARP pachets using 'protocol arp' filter and it works
perfectly as expected.

so at this point the problem is no longer 'how to match ethernet header'
but rather 'how to match a pachet of type 802_3'. My feeling is that
there is a bug somewhere in kernel where the 'protocol 802_3' matching
happens.


I attach part of the script I use to generate the filters and classes. I
removed everything related to HTB and IP pachets because there is no
problem there. in case the formating is lost, you can download it from
here: http://evox.ro/kernel_netdev_tc_protocol_802.3/


Thx for any help,
Doru Theodor Petrescu
CTO, Evox Solutions SRL
http://evox.ro/



for DEV in bond0.2199 bond1.2199 bond0.3000 bond1.3001 ; do


   tc qdisc  del dev $DEV root

   tc qdisc  add dev $DEV root handle 1: htb default 2
   tc class  add dev $DEV parent 1: classid 1:1 htb rate 930000kbit ceil
930000kbit quantum 1600
   
   tc filter add dev $DEV parent 1: prio 5 protocol ip u32
# ==> 800:

   tc filter add dev $DEV parent 1: prio 1 protocol 0x0806 u32
# ==> 801:      protocol ARP
   tc filter add dev $DEV parent 1: prio 1 handle 801:0:7 protocol
0x0806 u32  match u32 0 0 flowid 1:3

   tc filter add dev $DEV parent 1: prio 2 protocol 802_3 u32
# ==> 802:

   tc filter add dev $DEV parent 1: prio 6 protocol ip u32
# ==> 803:


   tc filter replace dev $DEV parent 1: prio 2 handle 802:0:3  protocol
802_3 u32 match u16 0 0 at 0 flowid 1:3 action mirred egress mirror dev
ifb1
   tc filter replace dev $DEV parent 1: prio 2 handle 802:0:9  protocol
802_3 u32 match ether src 01:00:0c:cc:cc:cd flowid 1:3 action mirred
egress mirror dev ifb1
   tc filter replace dev $DEV parent 1: prio 2 handle 802:0:10 protocol
802_3 u32 match ether dst 01:00:0c:cc:cc:cd flowid 1:3 action mirred
egress mirror dev ifb1

done


# the 802_3 pachet filter:   
# 
# 802:0:3 should match ANY pachet of type 802_3 and mirror it to ifb1
# 802:0:9 and 802:0:10 should match any pachet with src/dst
01:00:0c:cc:cc:cd and mirror it to ifb1
#
# however NOTHING is going to ifb1    try 'tcpdump -nltve -i ifb1'
# at the same time 'tcpdump -nltve -i bond1.2199 ether host
0100.0ccc.cccd' will show about one pachet every second
# 


# at the same time the ARP filter works. you can mirror all ARP trafic
to IFB1 like this:
# tc filter replace dev $DEV parent 1: prio 1 handle 801:0:7 protocol
0x0806 u32  match u32 0 0 flowid 1:3 action mirred egress mirror dev
ifb1









  reply	other threads:[~2011-06-16  8:11 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-15  8:12 tc match MAC destination Andrei Popa
2011-06-15  9:43 ` Eric Dumazet
2011-06-15 13:29 ` Stephen Hemminger
2011-06-16  7:56   ` Doru Theodor Petrescu [this message]
2011-06-16 15:51     ` tc match MAC destination - nothing matches on protocol 802_3 Stephen Hemminger
2011-06-16 20:21       ` Doru Petrescu

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=1308211012.12982.36365.camel@u.evox.ro \
    --to=pdoru.kernel@evox.ro \
    --cc=ierdnah@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=shemminger@vyatta.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®