On Tue, Mar 22, 2011 at 06:32:58PM -0700, Ethan Jackson wrote:
> It doesn't really make sense for the CFM code to be composing
> packets.  Its caller is better placed to compose the appropriate
> L2 header.  This commit pulls that logic out of the CFM library.

I don't really like the use of a static object.

May I propose another alternative?  First, drop the sending logic from
cfm_run() entirely and change its return type to void.  Then add two
new functions roughly like this:

bool
cfm_should_send_ccm(const struct cfm *cfm)
{
    const struct cfm_internal *cfmi = cfm_to_internal(cfm);

    return time_msec() >= cfmi->ccm_sent + cfmi->ccm_interval_ms;
}

void
cfm_compose_ccm(struct cfm *cfm, struct ccm *ccm)
{
    struct cfm_internal *cfmi = cfm_to_internal(cfm);

    cfmi->ccm_sent = time_msec();
    compose_ccm(cfmi->cfm.mpid, cfmi->cfm.maid, cfmi->ccm_interval,
                ++cfmi->seq, ccm);
}
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev

Reply via email to