]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp_eth.h
nfp: report port type in ethtool
[mirror_ubuntu-artful-kernel.git] / drivers / net / ethernet / netronome / nfp / nfpcore / nfp_nsp_eth.h
index 6b3e954e70b3422db05ade88745d688da8fe9dbf..57eb3cfa6a0ab76f6fda5b2a8656d975511ad4ad 100644 (file)
 #include <linux/types.h>
 #include <linux/if_ether.h>
 
+enum nfp_eth_interface {
+       NFP_INTERFACE_NONE      = 0,
+       NFP_INTERFACE_SFP       = 1,
+       NFP_INTERFACE_SFPP      = 10,
+       NFP_INTERFACE_SFP28     = 28,
+       NFP_INTERFACE_QSFP      = 40,
+       NFP_INTERFACE_CXP       = 100,
+       NFP_INTERFACE_QSFP28    = 112,
+};
+
+enum nfp_eth_media {
+       NFP_MEDIA_DAC_PASSIVE = 0,
+       NFP_MEDIA_DAC_ACTIVE,
+       NFP_MEDIA_FIBRE,
+};
+
 enum nfp_eth_aneg {
        NFP_ANEG_AUTO = 0,
        NFP_ANEG_SEARCH,
@@ -56,6 +72,8 @@ enum nfp_eth_aneg {
  * @base:      first channel index (within NBI)
  * @lanes:     number of channels
  * @speed:     interface speed (in Mbps)
+ * @interface: interface (module) plugged in
+ * @media:     media type of the @interface
  * @aneg:      auto negotiation mode
  * @mac_addr:  interface MAC address
  * @label_port:        port id
@@ -65,6 +83,7 @@ enum nfp_eth_aneg {
  * @rx_enabled:        is RX enabled?
  * @override_changed: is media reconfig pending?
  *
+ * @port_type: one of %PORT_* defines for ethtool
  * @is_split:  is interface part of a split port
  */
 struct nfp_eth_table {
@@ -77,6 +96,9 @@ struct nfp_eth_table {
                unsigned int lanes;
                unsigned int speed;
 
+               unsigned int interface;
+               enum nfp_eth_media media;
+
                enum nfp_eth_aneg aneg;
 
                u8 mac_addr[ETH_ALEN];
@@ -91,6 +113,8 @@ struct nfp_eth_table {
                bool override_changed;
 
                /* Computed fields */
+               u8 port_type;
+
                bool is_split;
        } ports[0];
 };