lkml.org 
[lkml]   [2016]   [Jul]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC PATCH 03/30] i40e/netpolicy: Implement ndo_netpolicy_init
    Date
    From: Kan Liang <kan.liang@intel.com>

    Support ndo_netpolicy_init in i40e driver.
    For i40e driver, there is no extra initialization work to do. It only
    needs to update the available policy bitmap.
    policy_param will be filled according to different policies later.

    Signed-off-by: Kan Liang <kan.liang@intel.com>
    ---
    drivers/net/ethernet/intel/i40e/i40e_main.c | 41 +++++++++++++++++++++++++++++
    1 file changed, 41 insertions(+)

    diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
    index 2b11405..ee1f0b2 100644
    --- a/drivers/net/ethernet/intel/i40e/i40e_main.c
    +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
    @@ -8960,6 +8960,44 @@ static netdev_features_t i40e_features_check(struct sk_buff *skb,
    return features;
    }

    +#ifdef CONFIG_NETPOLICY
    +
    +#define NET_POLICY_NOT_SUPPORT -2
    +#define NET_POLICY_END -3
    +static int policy_param[NET_POLICY_MAX + 1][2] = {
    + /* rx-usec, tx-usec */
    + {0, 0},
    +
    + {NET_POLICY_END, NET_POLICY_END},
    +};
    +
    +/**
    + * i40e_ndo_netpolicy_init
    + * @dev: the net device pointer
    + * @info: netpolicy info which need to be updated
    + *
    + * Init and update available policy on i40e driver
    + * Returns 0 on success, negative on failure
    + */
    +static int i40e_ndo_netpolicy_init(struct net_device *dev,
    + struct netpolicy_info *info)
    +{
    + int i;
    +
    + for (i = 0; i < NET_POLICY_MAX; i++) {
    + if ((policy_param[i][0] == NET_POLICY_END) &&
    + (policy_param[i][1] == NET_POLICY_END))
    + break;
    +
    + if ((policy_param[i][0] != NET_POLICY_NOT_SUPPORT) &&
    + (policy_param[i][1] != NET_POLICY_NOT_SUPPORT))
    + set_bit(i, info->avail_policy);
    + }
    +
    + return 0;
    +}
    +#endif /* CONFIG_NETPOLICY */
    +
    static const struct net_device_ops i40e_netdev_ops = {
    .ndo_open = i40e_open,
    .ndo_stop = i40e_close,
    @@ -8996,6 +9034,9 @@ static const struct net_device_ops i40e_netdev_ops = {
    .ndo_features_check = i40e_features_check,
    .ndo_bridge_getlink = i40e_ndo_bridge_getlink,
    .ndo_bridge_setlink = i40e_ndo_bridge_setlink,
    +#ifdef CONFIG_NETPOLICY
    + .ndo_netpolicy_init = i40e_ndo_netpolicy_init,
    +#endif /* CONFIG_NETPOLICY */
    };

    /**
    --
    2.5.5
    \
     
     \ /
      Last update: 2016-07-18 17:21    [W:4.135 / U:0.092 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site