Hi,

Ben Pfaff <b...@nicira.com>:
>> Yes, I figured this was not the place.  So should I add a new action to
>> ovs_action_attr instead, then add it as a datapath action during
>> translation?
> 
> Yes, that's the way to do it.

I think I've almost got it, but for some reason my action doesn't seem to be
triggered.

When translating the action, I do:

struct ofpbuf* odp_actions = &ctx->xout->odp_actions;
nl_msg_put_unspec(odp_actions, OVS_ACTION_ATTR_FOO,
                                 &foo, sizeof(struct ovs_action_foo));

I've tried this both with and without the slow-bit, but the action doesn't
seem to trigger. It's supposed to output on some port (can I combine my
action with a flood_packets() for instance? So it will execute my action
first and then output the changed packet to all ports?)

I've added entries to both datapath/actions.c and lib/odp-execute.c and
been very meticulous about inserting hooks everywhere. actions.c is for
the kernel actions and odp-execute.c is for userspace?

The only place I haven't hooked in is to commit_odp_actions -- I'm not
sure what this is for.

When the slow bit is OFF, I can see that odp-util performs odp action
formatting, but I can never see it parsing the string again.

When the slow bit is ON, I don't see any odp-util formatting, guessing
that the action is now supposed to be happening in the kernel module.
However, in the kernel I modify the packet with skbuff and then try to
output it, but tcpdump doesn't pick up anything.  I'm guessing that
I've not set up the output ports correctly, or something.

I'm sorry for bothering the list with this kind of stuff, but if I get it
working I'll do a how-to and put up on the net.

Regards,

-- 
Christian Stigen Larsen

_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss

Reply via email to