> -----Original Message----- > From: Wu, Jingjing > Sent: Monday, March 27, 2017 5:47 PM > To: Xing, Beilei <beilei.x...@intel.com> > Cc: Zhang, Helin <helin.zh...@intel.com>; dev@dpdk.org; Iremonger, > Bernard <bernard.iremon...@intel.com> > Subject: RE: [PATCH v2 1/4] net/i40e: rework tunnel filter functions > > > > > -----Original Message----- > > From: Xing, Beilei > > Sent: Thursday, March 23, 2017 6:46 PM > > To: Wu, Jingjing <jingjing...@intel.com> > > Cc: Zhang, Helin <helin.zh...@intel.com>; dev@dpdk.org > > Subject: [PATCH v2 1/4] net/i40e: rework tunnel filter functions > > > > Rework tunnel filter functions to align with the new command buffer > > for add/remove cloud filter. > > > > Signed-off-by: Beilei Xing <beilei.x...@intel.com> > > --- > > drivers/net/i40e/i40e_ethdev.c | 100 > > +++++++++++++++++++++++++++---------- > > ---- > > drivers/net/i40e/i40e_ethdev.h | 1 + > > drivers/net/i40e/i40e_flow.c | 28 +++++++----- > > 3 files changed, 86 insertions(+), 43 deletions(-) > > > > > > @@ -10289,13 +10307,29 @@ i40e_tunnel_filter_restore(struct i40e_pf *pf) > > struct i40e_tunnel_filter_list > > *tunnel_list = &pf->tunnel.tunnel_list; > > struct i40e_tunnel_filter *f; > > - struct i40e_aqc_add_remove_cloud_filters_element_data cld_filter; > > + struct i40e_aqc_add_rm_cloud_filt_elem_ext cld_filter; > > + bool big_buffer = 0; > > > > TAILQ_FOREACH(f, tunnel_list, rules) { > > memset(&cld_filter, 0, sizeof(cld_filter)); > > - rte_memcpy(&cld_filter, &f->input, sizeof(f->input)); > > - cld_filter.queue_number = f->queue; > > - i40e_aq_add_cloud_filters(hw, vsi->seid, &cld_filter, 1); > > + ether_addr_copy((struct ether_addr *)&f->input.outer_mac, > > + (struct ether_addr *)&cld_filter.element.outer_mac); > > + ether_addr_copy((struct ether_addr *)&f->input.inner_mac, > > + (struct ether_addr *)&cld_filter.element.inner_mac); > > + cld_filter.element.inner_vlan = f->input.inner_vlan; > > + cld_filter.element.flags = f->input.flags; > > + cld_filter.element.tenant_id = f->input.tenant_id; > > + cld_filter.element.queue_number = f->queue; > > + rte_memcpy(cld_filter.general_fields, > > + f->input.general_fields, > > + sizeof(f->input.general_fields)); > > + > > + if (big_buffer) > > + i40e_aq_add_cloud_filters_big_buffer(hw, vsi->seid, > > + &cld_filter, 1); > > + else > > + i40e_aq_add_cloud_filters(hw, vsi->seid, > > + &cld_filter.element, 1); > > } > > Big_buffer is always 0, why we need to check it?
Big_buffer will be 1 if the filter_type is MPLSoGRE/MPLSoUDP. But MPLS enabling in the next patchset. Will update in next version.