if (fsp->flow_type == IP_USER_FLOW) {
                int i;
                int add_usr_cls = 0;
-               int ipv6 = 0;
                struct ethtool_usrip4_spec *uspec = &fsp->h_u.usr_ip4_spec;
                struct ethtool_usrip4_spec *umask = &fsp->m_u.usr_ip4_spec;
 
+               if (uspec->ip_ver != ETH_RX_NFC_IP4)
+                       return -EINVAL;
+
                niu_lock_parent(np, flags);
 
                for (i = 0; i < NIU_L3_PROG_CLS; i++) {
                                default:
                                        break;
                                }
-                               if (uspec->ip_ver == ETH_RX_NFC_IP6)
-                                       ipv6 = 1;
-                               ret = tcam_user_ip_class_set(np, class, ipv6,
+                               ret = tcam_user_ip_class_set(np, class, 0,
                                                             uspec->proto,
                                                             uspec->tos,
                                                             umask->tos);
                ret = -EINVAL;
                goto out;
        case IP_USER_FLOW:
-               if (fsp->h_u.usr_ip4_spec.ip_ver == ETH_RX_NFC_IP4) {
-                       niu_get_tcamkey_from_ip4fs(fsp, tp, l2_rdc_table,
-                                                  class);
-               } else {
-                       /* Not yet implemented */
-                       netdev_info(np->dev, "niu%d: In %s(): usr flow for IPv6 not implemented\n",
-                                   parent->index, __func__);
-                       ret = -EINVAL;
-                       goto out;
-               }
+               niu_get_tcamkey_from_ip4fs(fsp, tp, l2_rdc_table, class);
                break;
        default:
                netdev_info(np->dev, "niu%d: In %s(): Unknown flow type %d\n",
 
        __u8    tos;
 };
 
-struct ethtool_rawip4_spec {
-       __be32  ip4src;
-       __be32  ip4dst;
-       __u8    hdata[64];
-};
-
-struct ethtool_ether_spec {
-       __be16  ether_type;
-       __u8    frame_size;
-       __u8    eframe[16];
-};
-
 #define        ETH_RX_NFC_IP4  1
-#define        ETH_RX_NFC_IP6  2
 
 /**
  * struct ethtool_usrip4_spec - general flow specification for IPv4
                struct ethtool_tcpip4_spec              sctp_ip4_spec;
                struct ethtool_ah_espip4_spec           ah_ip4_spec;
                struct ethtool_ah_espip4_spec           esp_ip4_spec;
-               struct ethtool_rawip4_spec              raw_ip4_spec;
-               struct ethtool_ether_spec               ether_spec;
                struct ethtool_usrip4_spec              usr_ip4_spec;
-               __u8                                    hdata[64];
+               __u8                                    hdata[72];
        } h_u, m_u;
        __u64           ring_cookie;
        __u32           location;
                struct ethtool_tcpip4_spec              sctp_ip4_spec;
                struct ethtool_ah_espip4_spec           ah_ip4_spec;
                struct ethtool_ah_espip4_spec           esp_ip4_spec;
-               struct ethtool_rawip4_spec              raw_ip4_spec;
-               struct ethtool_ether_spec               ether_spec;
                struct ethtool_usrip4_spec              usr_ip4_spec;
-               __u8                                    hdata[64];
+               __u8                                    hdata[72];
        } h_u, m_u;
 
        __u16           vlan_tag;
 
                        break;
                case IP_USER_FLOW:
                        sprintf(p, "\tSrc IP addr: 0x%x\n",
-                               fsc->fs.h_u.raw_ip4_spec.ip4src);
+                               fsc->fs.h_u.usr_ip4_spec.ip4src);
                        p += ETH_GSTRING_LEN;
                        num_strings++;
                        sprintf(p, "\tSrc IP mask: 0x%x\n",
-                               fsc->fs.m_u.raw_ip4_spec.ip4src);
+                               fsc->fs.m_u.usr_ip4_spec.ip4src);
                        p += ETH_GSTRING_LEN;
                        num_strings++;
                        sprintf(p, "\tDest IP addr: 0x%x\n",
-                               fsc->fs.h_u.raw_ip4_spec.ip4dst);
+                               fsc->fs.h_u.usr_ip4_spec.ip4dst);
                        p += ETH_GSTRING_LEN;
                        num_strings++;
                        sprintf(p, "\tDest IP mask: 0x%x\n",
-                               fsc->fs.m_u.raw_ip4_spec.ip4dst);
+                               fsc->fs.m_u.usr_ip4_spec.ip4dst);
                        p += ETH_GSTRING_LEN;
                        num_strings++;
                        break;