[Click] Scoping/naming issues

Cliff Frey cliff at meraki.com
Mon Jan 17 21:09:27 EST 2011


I actually really like this property of elementclasses.  Specifically, an
elementclass is a substitute for an element.  In cases like you describe
Philip, i end up writing configs like:

elementclass MyNull { input -> output; }

// input/output 0: internet
// input/output 1: LAN
elementclass MyRouter {
  input [0] -> from_inet :: MyNull();
  input [1] -> from_lan :: MyNull();
  to_inet :: MyNull() -> [0] output;
  to_lan :: MyNull() -> [1] output;

  from_inet -> Classifier(12/0800, ...)
  ...
}
On Mon, Jan 17, 2011 at 4:55 PM, Philip Prindeville <
philipp_subx at redfish-solutions.com> wrote:

> Yeah, it especially makes sense to have arpfoo be global if it needs to be
> accessible from two different elementclass's, one that deals with the IP
> flow (input [0] and output [0]) and another one that deals strictly with the
> ARP request/reply flow (input [1] and output [1]).
>
> Someone else will have to come up with the patches...  I've not yet dabbled
> in the code itself.
>
>
> On 1/17/11 4:35 PM, Eddie Kohler wrote:
> > Hi Philip,
> >
> > I can see why you thought compound elements would work that way, but they
> don't.  They are very strictly encapsulated: all connections to other
> elements must take place through explicit inputs and outputs.
> >
> > I admit it would make sense to do it the way you've imagined.  Patches
> welcome...
> >
> > Eddie
> >
> >
> > On 1/15/11 2:53 PM, Philip Prindeville wrote:
> >> I've got a configuration where I do:
> >>
> >> ...
> >> arpfoo :: ARPQuerier(...);
> >>
> >> elementclass Bar {
> >> ...
> >>       class :: classifier(...);
> >> ...
> >>        class [2] ->   [1] arpfoo;
> >> ...
> >> }
> >>
> >>
> >> but it complains that "unknown element class 'arpfoo'" in a few places,
> and that input 1 isn't used...
> >>
> >> So I'm confused.  Everything is scoped globally... even stuff defined
> within an elementclass gets scoped globally.
> >>
> >> Why then can't I access a global variable from within an elementclass's
> scope?
> >>
> >> What am I missing?
> >>
> >> Thanks,
> >>
> >> -Philip
>
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
>


More information about the click mailing list