Events are sent through a chain of handlers. Each handler returns a Disposition, either STOP or CONTINUE (with the obvious consequences). The order in which handlers are called can be specified in nox.xml. If a handler is not specified in nox.xml, there is no guarantee where it will be called in the chain (though it is guaranteed to be called).

My understanding is that events are raised asynchronously by various components. Every component will be notified when every event (that it has registered a handler for) is raised. So what ordering are we referring to? Is it the components that are ordered? And a particular event will go to the first component, and then the second (if the first component's handler returns CONTINUE), and so on. This logic follows an event as it is passed from one component to another.

nox.xml lists 8 events, and a various number of filters for each. At least some of the filters sound like component names. For example Flow_in_event has filters: sepl_enforcer, routing, sample_routing, normal_routing, and flow_cache. Are these the names of the components that Flow_in_event will be sent to, and in this order?

But how does this file handle new events defined by other components?

Thank you. I have a lot more to learn.


On Tue, Feb 16, 2010 at 1:32 PM, kk yap <yap...@stanford.edu <mailto:yap...@stanford.edu>> wrote:

    Hi Ashish,

    I will try to document what I understand in the doxygen when I
    find some time.

    For now, in brevity, the Disposition is defined in include/event.hh:
     enum Disposition { CONTINUE, STOP };

    Events are passed in order of the list listed in nox.xml, i.e.,
    components will receive the events in that order.  If a previous
    component return STOP, the event is not seen by the latter components.
     The alternative is CONTINUE, which is the common case.  Then, the
    latter components will receive the events.

    Hope I am being clear here.

    Regards
    KK


    On 16 February 2010 10:22, Ashish Agarwal <agarwal1...@gmail.com
    <mailto:agarwal1...@gmail.com>> wrote:
    > Okay I kind of understand that, although I don't see this defined in
    > nox.xml. This file just lists some events and provides filters
    for each (but
    > what's a filter?).
    > In nox_main.cc, there are the beginnings of a doxygen manual
    describing the
    > NOX Programming Model, but it just has section titles right now.
    This is
    > exactly what I need. Is this documentation completed in any
    later branch?
    >
    > On Tue, Feb 16, 2010 at 12:12 PM, Kyriakos Zarifis
    <kyr.zari...@gmail.com <mailto:kyr.zari...@gmail.com>>
    > wrote:
    >>
    >> Hey,
    >>
    >> without being sure, if I recall Dispositions are what
    components return
    >> with regards to the handling of an incoming event.. For example
    CONTINUE
    >> would push the event to be handled by the next component, and
    STOP would
    >> stop the forwarding of the event along the handler chain. This
    chain is
    >> defined in nox.xml
    >>
    >> I might be wrong, so someone else can correct me
    >>
    >> On Tue, Feb 16, 2010 at 9:03 AM, Ashish Agarwal
    <agarwal1...@gmail.com <mailto:agarwal1...@gmail.com>>
    >> wrote:
    >>>
    >>> Hi. What is a Disposition? I don't find a class definition for
    this
    >>> within the NOX source code.
    >>> I'm trying to understand NOX's design overall. I've read the
    white paper,
    >>> but the NOX manual says that unfortunately NOX's internal
    design is not well
    >>> documented. Is that still the case, or is there some
    documentation I haven't
    >>> found? Or is the source code the only source of information?
    >>> Thank you.
    >>>
    >>> _______________________________________________
    >>> nox-dev mailing list
    >>> nox-dev@noxrepo.org <mailto:nox-dev@noxrepo.org>
    >>> http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org
    >>>
    >>
    >
    >
    > _______________________________________________
    > nox-dev mailing list
    > nox-dev@noxrepo.org <mailto:nox-dev@noxrepo.org>
    > http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org
    >
    >


------------------------------------------------------------------------

_______________________________________________
nox-dev mailing list
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org


_______________________________________________
nox-dev mailing list
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org

Reply via email to