On Tue, 2004-12-28 at 08:40, Thomas Graf wrote:
> * jamal <1104240053.1100.53.camel@xxxxxxxxxxxxxxxx> 2004-12-28 08:20
> > You mean meta match.
>
> Yes, I was thinking about implementing it as action, any objections?
>
If you implement the mothership match changes we discussed then it
should go as a match (as opposed to action). As an action its yet
another deferal for later cleanup.
So my preference is to get the changes we discussed then this meta
match.
I could whip out meta action for setting values if you are gonna work
on the match piece.
> > > We
> > > should really stop to add more stuff to specific classifiers which have
> > > to be removed once we have metamatch. I've made a proposal on paper
> > > just need some more time to cook up a patch.
> >
> > I have cycles now. Are you working on this or should i invest some of my
> > cycles in it? Lets fix this once and for all.
>
> I don't care, I'm still testing the patchset to make classifer changes
> consistent again. A few big changes to tcindex/route classifier need
> extensive testing.
>
If you have started working on it i would prefer you make the changes.
BTW, I am talking about the top level match changes we discussed.
> My thoughts on meta match:
>
> A match consists of a header, lvalue, rvalue and stats. The header
> contains the handle, the requested operand (eq,lt,gt) and a flag to
> invert the meaning of the match. A value consists of a type and data
> where type specifies the actual metadata to be used. A few upper bits
> of the type specify the kind, i.e. wether it's numeric or a
> bytestring. Only values with matching upper bits can be compared.
> Additionally a mask and shift operator can be configured. Why so
> complicated? Comparing two kernel meta values can useful, realdev
> == indev when classyfing on tunnels, comparing backlogs, etc. Device
> matches should be made available as both numeric and bytestring match
> to have a fastpath when ifindex is stable and a slower path which is
> more flexible to changes.
Sounds reasonable at the high level. I am not sure i got the stats part.
Can you write out the BNF. Heres what i was thinking for meta action:
tc <OPERATION> action metaset [index ID] METAVARS
OPERATION:= ADD|DEL|GET|DUMP
METAVARS:= <[INDEV] [FWMARK] [TCINDEX] [PRIO] [CLASSID]>
INDEV = indev <devname>
FWMARK:= fwmark <value>
TCINDEX := tcindex <value>
PRIO := prio <value>
CLASSID := classid <class>
I notice you throw in some mask and shift operator - not sure if i
could make use of it here.
cheers,
jamal
|