From: Amritha Nambiar <amritha.nambiar@intel.com> To: intel-wired-lan@lists.osuosl.org, jeffrey.t.kirsher@intel.com Cc: alexander.h.duyck@intel.com, kiran.patil@intel.com, amritha.nambiar@intel.com, netdev@vger.kernel.org, mitch.a.williams@intel.com, alexander.duyck@gmail.com, neerav.parikh@intel.com, sridhar.samudrala@intel.com, carolyn.wyborny@intel.com Subject: [PATCH 5/6] [net-next]net: i40e: Clean up of cloud filters Date: Mon, 31 Jul 2017 17:38:00 -0700 [thread overview] Message-ID: <150154787996.4135.2478207403613749470.stgit@anamdev.jf.intel.com> (raw) In-Reply-To: <150154569340.4135.11548126443780491627.stgit@anamdev.jf.intel.com> Introduce the cloud filter datastructure and cleanup of cloud filters associated with the device. Signed-off-by: Amritha Nambiar <amritha.nambiar@intel.com> --- drivers/net/ethernet/intel/i40e/i40e.h | 11 +++++++++++ drivers/net/ethernet/intel/i40e/i40e_main.c | 27 +++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h index 1391e5d..5c0cad5 100644 --- a/drivers/net/ethernet/intel/i40e/i40e.h +++ b/drivers/net/ethernet/intel/i40e/i40e.h @@ -252,6 +252,14 @@ struct i40e_fdir_filter { u32 fd_id; }; +struct i40e_cloud_filter { + struct hlist_node cloud_node; + /* cloud filter input set follows */ + unsigned long cookie; + /* filter control */ + u16 seid; +}; + #define I40E_ETH_P_LLDP 0x88cc #define I40E_DCB_PRIO_TYPE_STRICT 0 @@ -419,6 +427,9 @@ struct i40e_pf { struct i40e_udp_port_config udp_ports[I40E_MAX_PF_UDP_OFFLOAD_PORTS]; u16 pending_udp_bitmap; + struct hlist_head cloud_filter_list; + u16 num_cloud_filters; + enum i40e_interrupt_policy int_policy; u16 rx_itr_default; u16 tx_itr_default; diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c index fdddd74..93f6fe2 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_main.c +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c @@ -6928,6 +6928,29 @@ static void i40e_fdir_filter_exit(struct i40e_pf *pf) } /** + * i40e_cloud_filter_exit - Cleans up the Cloud Filters + * @pf: Pointer to PF + * + * This function destroys the hlist where all the Cloud Filters + * filters were saved. + **/ +static void i40e_cloud_filter_exit(struct i40e_pf *pf) +{ + struct i40e_cloud_filter *cfilter; + struct hlist_node *node; + + if (hlist_empty(&pf->cloud_filter_list)) + return; + + hlist_for_each_entry_safe(cfilter, node, + &pf->cloud_filter_list, cloud_node) { + hlist_del(&cfilter->cloud_node); + kfree(cfilter); + } + pf->num_cloud_filters = 0; +} + +/** * i40e_close - Disables a network interface * @netdev: network interface device structure * @@ -12137,6 +12160,7 @@ static int i40e_setup_pf_switch(struct i40e_pf *pf, bool reinit) vsi = i40e_vsi_reinit_setup(pf->vsi[pf->lan_vsi]); if (!vsi) { dev_info(&pf->pdev->dev, "setup of MAIN VSI failed\n"); + i40e_cloud_filter_exit(pf); i40e_fdir_teardown(pf); return -EAGAIN; } @@ -12961,6 +12985,8 @@ static void i40e_remove(struct pci_dev *pdev) if (pf->vsi[pf->lan_vsi]) i40e_vsi_release(pf->vsi[pf->lan_vsi]); + i40e_cloud_filter_exit(pf); + /* remove attached clients */ if (pf->flags & I40E_FLAG_IWARP_ENABLED) { ret_code = i40e_lan_del_device(pf); @@ -13170,6 +13196,7 @@ static void i40e_shutdown(struct pci_dev *pdev) del_timer_sync(&pf->service_timer); cancel_work_sync(&pf->service_task); + i40e_cloud_filter_exit(pf); i40e_fdir_teardown(pf); /* Client close must be called explicitly here because the timer
WARNING: multiple messages have this Message-ID (diff)
From: Amritha Nambiar <amritha.nambiar@intel.com> To: intel-wired-lan@osuosl.org Subject: [Intel-wired-lan] [PATCH 5/6] [net-next]net: i40e: Clean up of cloud filters Date: Mon, 31 Jul 2017 17:38:00 -0700 [thread overview] Message-ID: <150154787996.4135.2478207403613749470.stgit@anamdev.jf.intel.com> (raw) In-Reply-To: <150154569340.4135.11548126443780491627.stgit@anamdev.jf.intel.com> Introduce the cloud filter datastructure and cleanup of cloud filters associated with the device. Signed-off-by: Amritha Nambiar <amritha.nambiar@intel.com> --- drivers/net/ethernet/intel/i40e/i40e.h | 11 +++++++++++ drivers/net/ethernet/intel/i40e/i40e_main.c | 27 +++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h index 1391e5d..5c0cad5 100644 --- a/drivers/net/ethernet/intel/i40e/i40e.h +++ b/drivers/net/ethernet/intel/i40e/i40e.h @@ -252,6 +252,14 @@ struct i40e_fdir_filter { u32 fd_id; }; +struct i40e_cloud_filter { + struct hlist_node cloud_node; + /* cloud filter input set follows */ + unsigned long cookie; + /* filter control */ + u16 seid; +}; + #define I40E_ETH_P_LLDP 0x88cc #define I40E_DCB_PRIO_TYPE_STRICT 0 @@ -419,6 +427,9 @@ struct i40e_pf { struct i40e_udp_port_config udp_ports[I40E_MAX_PF_UDP_OFFLOAD_PORTS]; u16 pending_udp_bitmap; + struct hlist_head cloud_filter_list; + u16 num_cloud_filters; + enum i40e_interrupt_policy int_policy; u16 rx_itr_default; u16 tx_itr_default; diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c index fdddd74..93f6fe2 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_main.c +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c @@ -6928,6 +6928,29 @@ static void i40e_fdir_filter_exit(struct i40e_pf *pf) } /** + * i40e_cloud_filter_exit - Cleans up the Cloud Filters + * @pf: Pointer to PF + * + * This function destroys the hlist where all the Cloud Filters + * filters were saved. + **/ +static void i40e_cloud_filter_exit(struct i40e_pf *pf) +{ + struct i40e_cloud_filter *cfilter; + struct hlist_node *node; + + if (hlist_empty(&pf->cloud_filter_list)) + return; + + hlist_for_each_entry_safe(cfilter, node, + &pf->cloud_filter_list, cloud_node) { + hlist_del(&cfilter->cloud_node); + kfree(cfilter); + } + pf->num_cloud_filters = 0; +} + +/** * i40e_close - Disables a network interface * @netdev: network interface device structure * @@ -12137,6 +12160,7 @@ static int i40e_setup_pf_switch(struct i40e_pf *pf, bool reinit) vsi = i40e_vsi_reinit_setup(pf->vsi[pf->lan_vsi]); if (!vsi) { dev_info(&pf->pdev->dev, "setup of MAIN VSI failed\n"); + i40e_cloud_filter_exit(pf); i40e_fdir_teardown(pf); return -EAGAIN; } @@ -12961,6 +12985,8 @@ static void i40e_remove(struct pci_dev *pdev) if (pf->vsi[pf->lan_vsi]) i40e_vsi_release(pf->vsi[pf->lan_vsi]); + i40e_cloud_filter_exit(pf); + /* remove attached clients */ if (pf->flags & I40E_FLAG_IWARP_ENABLED) { ret_code = i40e_lan_del_device(pf); @@ -13170,6 +13196,7 @@ static void i40e_shutdown(struct pci_dev *pdev) del_timer_sync(&pf->service_timer); cancel_work_sync(&pf->service_task); + i40e_cloud_filter_exit(pf); i40e_fdir_teardown(pf); /* Client close must be called explicitly here because the timer
next prev parent reply other threads:[~2017-08-01 0:38 UTC|newest] Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-08-01 0:36 [PATCH net-next RFC 0/6] Configure cloud filters in i40e via tc/flower classifier Amritha Nambiar 2017-08-01 0:36 ` [Intel-wired-lan] " Amritha Nambiar 2017-08-01 0:37 ` [PATCH 1/6] [net-next]net: sched: act_mirred: Extend redirect action to accept a traffic class Amritha Nambiar 2017-08-01 0:37 ` [Intel-wired-lan] " Amritha Nambiar 2017-08-01 10:22 ` Jamal Hadi Salim 2017-08-01 10:22 ` [Intel-wired-lan] " Jamal Hadi Salim 2017-08-02 1:12 ` Nambiar, Amritha 2017-08-02 1:12 ` [Intel-wired-lan] " Nambiar, Amritha 2017-08-01 10:44 ` Jamal Hadi Salim 2017-08-01 10:44 ` [Intel-wired-lan] " Jamal Hadi Salim 2017-08-02 1:42 ` Nambiar, Amritha 2017-08-02 1:42 ` [Intel-wired-lan] " Nambiar, Amritha 2017-08-01 11:12 ` Jiri Pirko 2017-08-01 11:12 ` [Intel-wired-lan] " Jiri Pirko 2017-08-02 2:20 ` Nambiar, Amritha 2017-08-02 2:20 ` [Intel-wired-lan] " Nambiar, Amritha 2017-08-01 0:37 ` [PATCH 2/6] [net-next]net: i40e: Maintain a mapping of TCs with the VSI seids Amritha Nambiar 2017-08-01 0:37 ` [Intel-wired-lan] " Amritha Nambiar 2017-08-01 0:37 ` [PATCH 3/6] [net-next]net: i40e: Extend set switch config command to accept cloud filter mode Amritha Nambiar 2017-08-01 0:37 ` [Intel-wired-lan] " Amritha Nambiar 2017-08-01 10:48 ` Jamal Hadi Salim 2017-08-01 10:48 ` [Intel-wired-lan] " Jamal Hadi Salim 2017-08-01 0:37 ` [PATCH 4/6] [net-next]net: i40e: Admin queue definitions for cloud filters Amritha Nambiar 2017-08-01 0:37 ` [Intel-wired-lan] " Amritha Nambiar 2017-08-01 19:16 ` Shannon Nelson 2017-08-01 19:16 ` Shannon Nelson 2017-08-14 18:59 ` Nambiar, Amritha 2017-08-14 18:59 ` Nambiar, Amritha 2017-08-01 0:38 ` Amritha Nambiar [this message] 2017-08-01 0:38 ` [Intel-wired-lan] [PATCH 5/6] [net-next]net: i40e: Clean up of " Amritha Nambiar 2017-08-01 19:16 ` Shannon Nelson 2017-08-01 19:16 ` Shannon Nelson 2017-08-14 19:06 ` Nambiar, Amritha 2017-08-14 19:06 ` Nambiar, Amritha 2017-08-01 0:38 ` [PATCH 6/6] [net-next]net: i40e: Enable cloud filters in i40e via tc/flower classifier Amritha Nambiar 2017-08-01 0:38 ` [Intel-wired-lan] " Amritha Nambiar 2017-08-01 10:56 ` Jamal Hadi Salim 2017-08-01 10:56 ` [Intel-wired-lan] " Jamal Hadi Salim 2017-08-02 2:13 ` Nambiar, Amritha 2017-08-02 2:13 ` [Intel-wired-lan] " Nambiar, Amritha 2017-08-02 12:02 ` Jamal Hadi Salim 2017-08-02 12:02 ` [Intel-wired-lan] " Jamal Hadi Salim 2017-08-02 18:20 ` Nambiar, Amritha 2017-08-02 18:20 ` [Intel-wired-lan] " Nambiar, Amritha 2017-08-01 19:16 ` Shannon Nelson 2017-08-01 19:16 ` Shannon Nelson 2017-08-14 19:21 ` Nambiar, Amritha 2017-08-14 19:21 ` Nambiar, Amritha 2017-08-01 10:15 ` [PATCH net-next RFC 0/6] Configure " Jamal Hadi Salim 2017-08-01 10:15 ` [Intel-wired-lan] " Jamal Hadi Salim 2017-08-02 0:57 ` Nambiar, Amritha 2017-08-02 0:57 ` [Intel-wired-lan] " Nambiar, Amritha 2017-08-02 12:01 ` Jamal Hadi Salim 2017-08-02 12:01 ` [Intel-wired-lan] " Jamal Hadi Salim 2017-08-02 18:17 ` Nambiar, Amritha 2017-08-02 18:17 ` [Intel-wired-lan] " Nambiar, Amritha 2017-08-01 19:16 ` Shannon Nelson 2017-08-01 19:16 ` Shannon Nelson
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=150154787996.4135.2478207403613749470.stgit@anamdev.jf.intel.com \ --to=amritha.nambiar@intel.com \ --cc=alexander.duyck@gmail.com \ --cc=alexander.h.duyck@intel.com \ --cc=carolyn.wyborny@intel.com \ --cc=intel-wired-lan@lists.osuosl.org \ --cc=jeffrey.t.kirsher@intel.com \ --cc=kiran.patil@intel.com \ --cc=mitch.a.williams@intel.com \ --cc=neerav.parikh@intel.com \ --cc=netdev@vger.kernel.org \ --cc=sridhar.samudrala@intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.