Recheck-request: github-robot On 11/11/24 11:43 AM, Dumitru Ceara wrote: > The actions that retrieve the original tuple destination IPs and ports > were used in the following way in ovn-northd: > > REG_ORIG_DIP_IPV4 " = ct_nw_dst() > REG_ORIG_DIP_IPV6 " = ct_ip6_dst() > REG_ORIG_TP_DPORT " = ct_tp_dst() > > Where: > REG_ORIG_DIP_IPV4 is reg1 > REG_ORIG_DIP_IPV6 is xxreg1 > REG_ORIG_TP_DPORT is reg2[0..15] > > While the actions use a different intermediate register: > ct_nw_dst() was reg4<-0; reg4<-ct_nw_dst > ct_ip6_dst() was xxreg0<-0; xxreg0<-ct_ip6_dst > ct_tp_dst() was reg8[0..15]<-0; reg8[0..15]<-ct_tp_dst > > We can reduce the set of registers we use in the OVN pipeline by > changing the action definition to use the same registers ovn-northd uses > as final destination for the ct_*_dst() values. This will generate the > following openflow rules: > > REG_ORIG_DIP_IPV4 " = ct_nw_dst() > reg1<-0; reg1<-ct_nw_dst; reg1<-reg1 > REG_ORIG_DIP_IPV6 " = ct_ip6_dst() > xxreg1<-0; xxreg1<-ct_ip6_dst; xxreg1<-xxreg1 > REG_ORIG_TP_DPORT " = ct_tp_dst() > reg2[0..15]<-0; reg2[0..15]<-ct_tp_dst; reg2[0..15]<-reg2[0..15] > > As Ilya Maximets points out, overlapping source and destination are > well defined for move actions: > https://opennetworking.org/wp-content/uploads/2014/10/openflow-switch-v1.5.0.noipr.pdf > > This action must behaves properly when src_oxm_id overlaps with > dst_oxm_id, that is, it behaves as if src_oxm_id were copied out > to a temporary buffer, then the temporary buffer copied to > dst_oxm_id, if this is not possible the switch must reject the > Copy Field action with a Bad Set Type error message. > > OpenvSwitch doesn't reject such actions. > > Fixes: 0f806cf08c36 ("Fix load balanced hairpin traffic for fragmented > packets.") > Signed-off-by: Dumitru Ceara <[email protected]> > ---
_______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
