* iproute2, meta, flex parser bug?
@ 2009-01-29 11:04 Denys Fedoryschenko
2009-01-30 13:20 ` Thomas Graf
0 siblings, 1 reply; 2+ messages in thread
From: Denys Fedoryschenko @ 2009-01-29 11:04 UTC (permalink / raw)
To: netdev; +Cc: Stephen Hemminger
I'm trying to make meta work, without success. Seems parser done in flex
failing. My knowledge is not enough to fix or understand how flex is working
Here is what i got:
home iproute2 # home iproute2 # tc/tc filter add dev eth0 protocol ip pref 11
basic match meta\(rt_iif eq \"eth0\"\)
meta: unknown meta id
... meta(rt_iif >>eq<< ...
... meta(rt_iif eq >>"eth0"<<)...
Usage: meta(OBJECT { eq | lt | gt } OBJECT)
where: OBJECT := { META_ID | VALUE }
META_ID := id [ shift SHIFT ] [ mask MASK ]
Example: meta(nfmark gt 24)
meta(indev shift 1 eq "ppp")
meta(tcindex mask 0xf0 eq 0xf0)
For a list of meta identifiers, use meta(list).
Illegal "ematch"
I try with debug, and how flex is working - strange for me
--(end of buffer or a NUL)
--accepting rule at line 139 ("meta")
--accepting rule at line 135 ("(")
--accepting rule at line 139 ("rt_iif")
--(end of buffer or a NUL)
--accepting rule at line 70 (" ")
--accepting rule at line 139 ("eq")
--(end of buffer or a NUL)
--accepting rule at line 70 (" ")
--accepting rule at line 139 (""eth0"")
--accepting rule at line 136 (")")
--(end of buffer or a NUL)
--accepting rule at line 70 (" ")
--(end of buffer or a NUL)
--EOF (start condition 0)
Even with numbers
tc/tc filter add dev eth0 protocol ip pref 11 basic match meta\(rt_iif eq
123\)
--(end of buffer or a NUL)
--accepting rule at line 139 ("meta")
--accepting rule at line 135 ("(")
--accepting rule at line 139 ("rt_iif")
--(end of buffer or a NUL)
--accepting rule at line 70 (" ")
--accepting rule at line 139 ("eq")
--(end of buffer or a NUL)
--accepting rule at line 70 (" ")
--accepting rule at line 139 ("123")
--accepting rule at line 136 (")")
--(end of buffer or a NUL)
--accepting rule at line 70 (" ")
--(end of buffer or a NUL)
--EOF (start condition 0)
It seems it is not matching any rules except
70 [ \t\r\n]+
136 ")"
139 [^ \t\r\n()]+
In flex rules all looks correct, but maybe i miss something.
My software versions
bison (GNU Bison) 2.3
flex 2.5.35
gcc version 4.3.2 (Gentoo 4.3.2 p1.2)
iproute2 is latest git
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: iproute2, meta, flex parser bug?
2009-01-29 11:04 iproute2, meta, flex parser bug? Denys Fedoryschenko
@ 2009-01-30 13:20 ` Thomas Graf
0 siblings, 0 replies; 2+ messages in thread
From: Thomas Graf @ 2009-01-30 13:20 UTC (permalink / raw)
To: Denys Fedoryschenko; +Cc: netdev, Stephen Hemminger
* Denys Fedoryschenko <denys@visp.net.lb> 2009-01-29 13:04
> I'm trying to make meta work, without success. Seems parser done in flex
> failing. My knowledge is not enough to fix or understand how flex is working
> Here is what i got:
>
> home iproute2 # home iproute2 # tc/tc filter add dev eth0 protocol ip pref 11
> basic match meta\(rt_iif eq \"eth0\"\)
Try: tc filter ... basic match 'meta(rt_iif eq <NUM>)' classid XX:YY
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2009-01-30 13:19 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-01-29 11:04 iproute2, meta, flex parser bug? Denys Fedoryschenko
2009-01-30 13:20 ` Thomas Graf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).