Just a friendly ping to bring this patch back to the queue. Perhaps addressing igmp in ofputil_normalize_match is outside the scope of this patch set, however, I do think the workaround in ovs-save will be needed to allow flow-dumps containing 'igmp' to be restored.
Open to any thoughts! On Thu, Aug 5, 2021 at 11:58 AM Salvatore Daniele <sdani...@redhat.com> wrote: > > Good point, OVS is unable to parse them. I don't see anywhere in the OVS code > that relies on these fields being printed. > > I could replace them with the default 'tp_src/dst' in this workaround, so as > not to break any scripts. > > That being said, I am not sure how these fields would currently even end up > in a flow-dump so perhaps that would be redundant. igmp* fields can not be > added explicitly (add-flow ... igmp_type=1) the way you could any other l3 > field/type since they can't be parsed. > > Additionally, it would seem ofputil_normalize_match__() does not recognize > 'igmp/ip,nw_proto=2' as an L3 protocol. > Setting "tp_src" should work to insert a flow with 'igmp_type', as tp_src is > changed to igmp_type internally, but a flow cannot match on an L3 field > without saying what L3 protocol is in use, and since 'igmp' is not recognized > as such, the flow is normalized removing the igmp_type field. > > $ ovs-ofctl add-flow br1 "ip,nw_proto=2,tp_src=1, action=drop" > 2021-08-05T15:16:48Z|00001|ofp_match|INFO|normalization changed ofp_match, > details: > 2021-08-05T15:16:48Z|00002|ofp_match|INFO| pre: igmp,igmp_type=1 > 2021-08-05T15:16:48Z|00003|ofp_match|INFO|post: igmp > > I could fix this issue in ofputil_normalize_match__() in this patch so igmp > packets will behave like any other L3 proto, which would then require me to > update the workaround. However, if the goal of this first patch is to avoid > breaking existing scripts, perhaps it would make sense to leave the > ofputil_normalize_match__() as is? > > I could then fix the normalization behavior in the second patch in addition > to removing 'igmp' and 'igmp fields' from match.c. > > What do you think? > > On Wed, Aug 4, 2021 at 1:51 PM Ilya Maximets <i.maxim...@ovn.org> wrote: >> >> On 7/23/21 4:58 PM, Salvatore Daniele wrote: >> > match.c generates the keyword "igmp", which is not supported in ofp-parse. >> > This means that flow dumps containing 'igmp' can not be restored. >> > >> > Removing the 'igmp' keyword entirely could break existing scripts in stable >> > branches, so this patch creates a workaround within ovs-save by converting >> > any >> > instances of "igmp" within $bridge.flows.dump into "ip, nw_proto=2". >> > >> > Signed-off-by: Salvatore Daniele <sdani...@redhat.com> >> > Acked-by: Aaron Conole <acon...@redhat.com> >> > --- >> > utilities/ovs-save | 3 ++- >> > 1 file changed, 2 insertions(+), 1 deletion(-) >> > >> > diff --git a/utilities/ovs-save b/utilities/ovs-save >> > index 27ce3a9aa..23cb0d9d9 100755 >> > --- a/utilities/ovs-save >> > +++ b/utilities/ovs-save >> > @@ -150,7 +150,8 @@ save_flows () { >> > ovs-ofctl -O $ofp_version dump-flows --no-names --no-stats >> > "$bridge" | \ >> > sed -e '/NXST_FLOW/d' \ >> > -e '/OFPST_FLOW/d' \ >> > - -e 's/\(idle\|hard\)_age=[^,]*,//g' > \ >> > + -e 's/\(idle\|hard\)_age=[^,]*,//g' \ >> > + -e 's/igmp/ip,nw_proto=2/g' > \ >> > "$workdir/$bridge.flows.dump" >> > done >> > echo "rm -rf \"$workdir\"" >> > >> >> Hmm. What about 'igmp_type' and 'igmp_code'? I don't think that OVS >> will be able to parse them. Should we replace them with generic >> 'tp_src' and 'tp_dst' ? Will that work? >> >> Best regards, Ilya Maximets. >> _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev