I'm looking into adding IPv6 support to the ethtool flow steering API. But, I don't know "the unfortunate history of and subtle differences between the RX n-tuple versus RX NFC commands". In particular, would I need to add IPv6 support to both of them, or only one? If one would be sufficient, which one is preferred? Also, is it necessary to duplicate the profusion of variants that the IPv4 flow specs have (3x struct ethtool_tcpip4_spec, 2x struct ethtool_ah_espip4_spec, and struct ethtool_usrip4_spec), or should I just make one struct that contains all the fields from those (I would say "the union of their fields", but that might be confusing), and rely on flow_type to indicate which fields are meaningful? And, what exactly are the hdata fields in ethtool_flow_union and the anonymous union in ethtool_rx_ntuple_flow_spec (they're not documented) and why are they different sizes?
-Ed