i40e: don't use arrays for (src|dst)_ip
authorJacob Keller <jacob.e.keller@intel.com>
Mon, 6 Feb 2017 22:38:39 +0000 (14:38 -0800)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Mon, 20 Mar 2017 23:45:20 +0000 (16:45 -0700)
The code originally included src_ip and dst_ip with enough space to
support ipv6 filters. However, no actual support for ipv6 filters has
been implemented. Thus, remove the arrays and just use __be32 values.
Should ipv6 support be added in the future, we can replace these with
a union that has sizes for both values.

Change-Id: I1bc04032244a80eb6ebc8a4e6c723a4a665c1dd5
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40e/i40e.h
drivers/net/ethernet/intel/i40e/i40e_ethtool.c
drivers/net/ethernet/intel/i40e/i40e_txrx.c

index fba8495..55ea1c0 100644 (file)
@@ -208,8 +208,8 @@ struct i40e_fdir_filter {
        u8 flow_type;
        u8 ip4_proto;
        /* TX packet view of src and dst */
-       __be32 dst_ip[4];
-       __be32 src_ip[4];
+       __be32 dst_ip;
+       __be32 src_ip;
        __be16 src_port;
        __be16 dst_port;
        __be32 sctp_v_tag;
index ceb57ad..7a22b47 100644 (file)
@@ -2406,8 +2406,8 @@ static int i40e_get_ethtool_fdir_entry(struct i40e_pf *pf,
         */
        fsp->h_u.tcp_ip4_spec.psrc = rule->dst_port;
        fsp->h_u.tcp_ip4_spec.pdst = rule->src_port;
-       fsp->h_u.tcp_ip4_spec.ip4src = rule->dst_ip[0];
-       fsp->h_u.tcp_ip4_spec.ip4dst = rule->src_ip[0];
+       fsp->h_u.tcp_ip4_spec.ip4src = rule->dst_ip;
+       fsp->h_u.tcp_ip4_spec.ip4dst = rule->src_ip;
 
        if (rule->dest_ctl == I40E_FILTER_PROGRAM_DESC_DEST_DROP_PACKET)
                fsp->ring_cookie = RX_CLS_FLOW_DISC;
@@ -2630,8 +2630,8 @@ static int i40e_set_rss_hash_opt(struct i40e_pf *pf, struct ethtool_rxnfc *nfc)
 static bool i40e_match_fdir_input_set(struct i40e_fdir_filter *rule,
                                      struct i40e_fdir_filter *input)
 {
-       if ((rule->dst_ip[0] != input->dst_ip[0]) ||
-           (rule->src_ip[0] != input->src_ip[0]) ||
+       if ((rule->dst_ip != input->dst_ip) ||
+           (rule->src_ip != input->src_ip) ||
            (rule->dst_port != input->dst_port) ||
            (rule->src_port != input->src_port))
                return false;
@@ -2807,8 +2807,8 @@ static int i40e_add_fdir_ethtool(struct i40e_vsi *vsi,
         */
        input->dst_port = fsp->h_u.tcp_ip4_spec.psrc;
        input->src_port = fsp->h_u.tcp_ip4_spec.pdst;
-       input->dst_ip[0] = fsp->h_u.tcp_ip4_spec.ip4src;
-       input->src_ip[0] = fsp->h_u.tcp_ip4_spec.ip4dst;
+       input->dst_ip = fsp->h_u.tcp_ip4_spec.ip4src;
+       input->src_ip = fsp->h_u.tcp_ip4_spec.ip4dst;
 
        if (ntohl(fsp->m_ext.data[1])) {
                vf_id = ntohl(fsp->h_ext.data[1]);
index 6eb5dc4..c4d3a40 100644 (file)
@@ -219,9 +219,9 @@ static int i40e_add_del_fdir_udpv4(struct i40e_vsi *vsi,
        udp = (struct udphdr *)(raw_packet + IP_HEADER_OFFSET
              + sizeof(struct iphdr));
 
-       ip->daddr = fd_data->dst_ip[0];
+       ip->daddr = fd_data->dst_ip;
        udp->dest = fd_data->dst_port;
-       ip->saddr = fd_data->src_ip[0];
+       ip->saddr = fd_data->src_ip;
        udp->source = fd_data->src_port;
 
        fd_data->pctype = I40E_FILTER_PCTYPE_NONF_IPV4_UDP;
@@ -281,9 +281,9 @@ static int i40e_add_del_fdir_tcpv4(struct i40e_vsi *vsi,
        tcp = (struct tcphdr *)(raw_packet + IP_HEADER_OFFSET
              + sizeof(struct iphdr));
 
-       ip->daddr = fd_data->dst_ip[0];
+       ip->daddr = fd_data->dst_ip;
        tcp->dest = fd_data->dst_port;
-       ip->saddr = fd_data->src_ip[0];
+       ip->saddr = fd_data->src_ip;
        tcp->source = fd_data->src_port;
 
        if (add) {
@@ -359,8 +359,8 @@ static int i40e_add_del_fdir_ipv4(struct i40e_vsi *vsi,
                memcpy(raw_packet, packet, I40E_IP_DUMMY_PACKET_LEN);
                ip = (struct iphdr *)(raw_packet + IP_HEADER_OFFSET);
 
-               ip->saddr = fd_data->src_ip[0];
-               ip->daddr = fd_data->dst_ip[0];
+               ip->saddr = fd_data->src_ip;
+               ip->daddr = fd_data->dst_ip;
                ip->protocol = 0;
 
                fd_data->pctype = i;