Subject: Re: metadata

From: "Yang, Lily L" <[email-masked]>
Date: Mon, 15 Mar 2004 20:00:42 -0800

Sorry that the previous posting was sent prematurely by accident. So
here I try to finish up what I left ... See between <LY> </LY>.

- I am still struggling to follow the redirector example in 3.2.4.3
which conditionaly uses a classid or protocoltype as its work selector.
Care to explain a little more?

<LY> I suspect the trouble you are having is thinking sth more
complicated than what it really is -- it is all about names, "tag"
names. So you have 
+-------------+     +----------------+
| NextHop LFB |---->| redirector LFB |--->
+-------------+     +----------------+

Now, nextHop LFB is defined by you, Jamal, while simultaneously,
somebody else (say Lily) is defining redirector LFB. Since we don't talk
to each other or can't agree with each other even if we try to talk, so
nextHop LFB is defined with output metadata tag called "nextHopID",
while redirector LFB insists on an input metadata tag of "ClassID". You
see the problem? Somehow when you put these two together, you need to
configure them so that "nextHopID" becomes "ClassID". That is what the
selector attribute is for.
Now, you will say, if Lily and Jamal talk and agree, we shouldn't have
this problem. Well, what about another LFB, say meter LFB defined by
Joel,(with a metadata called "color") is followed by the same redirector
LFB? 
It's just all about names. Alias. 
</LY>

- On enumeration and binding; isnt all metadata always bound at some
point. I.e if theres a producer, there has to be a consumer.
And when it is bound, doesnt it have to be enumerated? (maybe not as
exhaustively as a simple meter).

<LY> I don't think "binding" here means the binding of consumer input
and producer output.  But I have to admit that I am quite ignorant on
the subject, because I almost want to agree that enumeration and binding
seems quite the same fundamentally, other than the superficial
difference of the size of the data, maybe? I am sure Zsolt would correct
me here.
</LY>

- on explicit metadata: Why does it make a difference what the metadata
is used for? if the result is a table update, a packet creation,
shrinking, expansion etc - why is it important to distinguish how that
metadata is used?

<LY> Because it might affect whether the CE should care about how to
encode the metadata value. For explicit metadata, the encoding needs to
be defined explicitly. For others, the encoding can be arbitrary.
hAgain, Zsolt should come to your rescue, if I am misleading you.
</LY>

cheers,
jamal