Commit e0de7c93b950b9e784894efc4b529c6958cb747a

Authored by Ben Hutchings
Committed by David S. Miller
1 parent e035587305

ethtool: Remove unimplemented flow specification types

struct ethtool_rawip4_spec and struct ethtool_ether_spec are neither
commented nor used by any driver, so remove them.  Adjust padding in
the user-visible unions that included these structures.

Fix references to struct ethtool_rawip4_spec in
ethtool_get_rx_ntuple(), which should use struct ethtool_usrip4_spec.

struct ethtool_usrip4_spec cannot hold IPv6 host addresses and there
is no separate structure that can, so remove ETH_RX_NFC_IP6 and the
reference to it in niu.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

Showing 3 changed files with 11 additions and 37 deletions Side-by-side Diff

... ... @@ -7462,10 +7462,12 @@
7462 7462 if (fsp->flow_type == IP_USER_FLOW) {
7463 7463 int i;
7464 7464 int add_usr_cls = 0;
7465   - int ipv6 = 0;
7466 7465 struct ethtool_usrip4_spec *uspec = &fsp->h_u.usr_ip4_spec;
7467 7466 struct ethtool_usrip4_spec *umask = &fsp->m_u.usr_ip4_spec;
7468 7467  
  7468 + if (uspec->ip_ver != ETH_RX_NFC_IP4)
  7469 + return -EINVAL;
  7470 +
7469 7471 niu_lock_parent(np, flags);
7470 7472  
7471 7473 for (i = 0; i < NIU_L3_PROG_CLS; i++) {
... ... @@ -7494,9 +7496,7 @@
7494 7496 default:
7495 7497 break;
7496 7498 }
7497   - if (uspec->ip_ver == ETH_RX_NFC_IP6)
7498   - ipv6 = 1;
7499   - ret = tcam_user_ip_class_set(np, class, ipv6,
  7499 + ret = tcam_user_ip_class_set(np, class, 0,
7500 7500 uspec->proto,
7501 7501 uspec->tos,
7502 7502 umask->tos);
... ... @@ -7553,16 +7553,7 @@
7553 7553 ret = -EINVAL;
7554 7554 goto out;
7555 7555 case IP_USER_FLOW:
7556   - if (fsp->h_u.usr_ip4_spec.ip_ver == ETH_RX_NFC_IP4) {
7557   - niu_get_tcamkey_from_ip4fs(fsp, tp, l2_rdc_table,
7558   - class);
7559   - } else {
7560   - /* Not yet implemented */
7561   - netdev_info(np->dev, "niu%d: In %s(): usr flow for IPv6 not implemented\n",
7562   - parent->index, __func__);
7563   - ret = -EINVAL;
7564   - goto out;
7565   - }
  7556 + niu_get_tcamkey_from_ip4fs(fsp, tp, l2_rdc_table, class);
7566 7557 break;
7567 7558 default:
7568 7559 netdev_info(np->dev, "niu%d: In %s(): Unknown flow type %d\n",
include/linux/ethtool.h
... ... @@ -353,20 +353,7 @@
353 353 __u8 tos;
354 354 };
355 355  
356   -struct ethtool_rawip4_spec {
357   - __be32 ip4src;
358   - __be32 ip4dst;
359   - __u8 hdata[64];
360   -};
361   -
362   -struct ethtool_ether_spec {
363   - __be16 ether_type;
364   - __u8 frame_size;
365   - __u8 eframe[16];
366   -};
367   -
368 356 #define ETH_RX_NFC_IP4 1
369   -#define ETH_RX_NFC_IP6 2
370 357  
371 358 /**
372 359 * struct ethtool_usrip4_spec - general flow specification for IPv4
373 360  
... ... @@ -403,10 +390,8 @@
403 390 struct ethtool_tcpip4_spec sctp_ip4_spec;
404 391 struct ethtool_ah_espip4_spec ah_ip4_spec;
405 392 struct ethtool_ah_espip4_spec esp_ip4_spec;
406   - struct ethtool_rawip4_spec raw_ip4_spec;
407   - struct ethtool_ether_spec ether_spec;
408 393 struct ethtool_usrip4_spec usr_ip4_spec;
409   - __u8 hdata[64];
  394 + __u8 hdata[72];
410 395 } h_u, m_u;
411 396 __u64 ring_cookie;
412 397 __u32 location;
413 398  
... ... @@ -496,10 +481,8 @@
496 481 struct ethtool_tcpip4_spec sctp_ip4_spec;
497 482 struct ethtool_ah_espip4_spec ah_ip4_spec;
498 483 struct ethtool_ah_espip4_spec esp_ip4_spec;
499   - struct ethtool_rawip4_spec raw_ip4_spec;
500   - struct ethtool_ether_spec ether_spec;
501 484 struct ethtool_usrip4_spec usr_ip4_spec;
502   - __u8 hdata[64];
  485 + __u8 hdata[72];
503 486 } h_u, m_u;
504 487  
505 488 __u16 vlan_tag;
... ... @@ -673,19 +673,19 @@
673 673 break;
674 674 case IP_USER_FLOW:
675 675 sprintf(p, "\tSrc IP addr: 0x%x\n",
676   - fsc->fs.h_u.raw_ip4_spec.ip4src);
  676 + fsc->fs.h_u.usr_ip4_spec.ip4src);
677 677 p += ETH_GSTRING_LEN;
678 678 num_strings++;
679 679 sprintf(p, "\tSrc IP mask: 0x%x\n",
680   - fsc->fs.m_u.raw_ip4_spec.ip4src);
  680 + fsc->fs.m_u.usr_ip4_spec.ip4src);
681 681 p += ETH_GSTRING_LEN;
682 682 num_strings++;
683 683 sprintf(p, "\tDest IP addr: 0x%x\n",
684   - fsc->fs.h_u.raw_ip4_spec.ip4dst);
  684 + fsc->fs.h_u.usr_ip4_spec.ip4dst);
685 685 p += ETH_GSTRING_LEN;
686 686 num_strings++;
687 687 sprintf(p, "\tDest IP mask: 0x%x\n",
688   - fsc->fs.m_u.raw_ip4_spec.ip4dst);
  688 + fsc->fs.m_u.usr_ip4_spec.ip4dst);
689 689 p += ETH_GSTRING_LEN;
690 690 num_strings++;
691 691 break;