> I think that should work. Can you show complete results of
> "ofproto/trace" from e.g. an OVS sandbox environment?
This didn't work for me. Here is the output from running it in the
sandbox. I figured the reason why it did not work. Please see code
snippet in the bottom of the mail.
---------------
$sudo ovs-appctl ofproto/trace br0
in_port=1,ip,dl_dst=00:10:10:10:10:14,nw_dst=10.0.0.5
Bridge: br0
Flow:
ip,metadata=0,in_port=1,vlan_tci=0x0000,dl_src=00:00:00:00:00:00,dl_dst=00:10:10:10:10:14,nw_src=0.0.0.0,nw_dst=10.0.0.5,nw_tos=0,nw_ecn=0,nw_ttl=0
Rule: table=0 cookie=0 priority=32769,ip,nw_dst=10.0.0.5
OpenFlow actions=group:1,resubmit\(,1\)
Resubmitted flow: unchanged
Resubmitted regs: reg0=0x0 reg1=0x0 reg2=0x0 reg3=0x0 reg4=0x0
reg5=0x0 reg6=0x0 reg7=0x0
Resubmitted odp: drop
Resubmitted megaflow:
recirc_id=0,skb_priority=0,ip,in_port=1,nw_dst=10.0.0.5,nw_frag=no
No match
Final flow: unchanged
Megaflow: recirc_id=0,skb_priority=0,ip,in_port=1,nw_dst=10.0.0.5,nw_frag=no
Datapath actions: drop
---------------
I traced the issue back to this piece of code in lib/ofp-actions.c
(Line #4464). If a group bucket's action-set does not contain an
OUTPUT action, then it will not be applied.
void
ofpacts_execute_action_set(struct ofpbuf *action_list,
const struct ofpbuf *action_set)
{
....
if (!ofpacts_copy_last(action_list, action_set, OFPACT_GROUP) &&
!ofpacts_copy_last(action_list, action_set, OFPACT_OUTPUT)) {
ofpbuf_clear(action_list);
}
}
Solving above code issue is easy. But, the bigger question is the
OpenFlow spec issue of whether there can be an group action
(especially one that does not include an output action) and an output
action (appended later through the resubmit) in the same action-set. I
filed an OpenFlow spec clarification comment to a related ticket:
https://rs.opennetworking.org/bugs/browse/EXT-408
_______________________________________________
discuss mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/discuss