@@ -795,6 +795,7 @@ struct i40e_vsi {
} ____cacheline_internodealigned_in_smp;
struct i40e_netdev_priv {
+ struct idc_srv_provider prov_callbacks;
struct i40e_vsi *vsi;
};
@@ -44,6 +44,16 @@ enum i40e_client_instance_state {
#define I40E_QUEUE_TYPE_PE_AEQ 0x80
#define I40E_QUEUE_INVALID_IDX 0xFFFF
+#define IDC_SIGNATURE 0x494e54454c494443ULL /* INTELIDC */
+struct idc_srv_provider {
+ u64 signature;
+ u16 maj_ver;
+ u16 min_ver;
+ u8 rsvd[4];
+ int (*reg_peer_driver)(struct i40e_client *client);
+ int (*unreg_peer_driver)(struct i40e_client *client);
+};
+
struct i40e_qv_info {
u32 v_idx; /* msix_vector */
u16 ceq_idx;
@@ -12243,6 +12243,13 @@ static int i40e_config_netdev(struct i40e_vsi *vsi)
np = netdev_priv(netdev);
np->vsi = vsi;
+ np->prov_callbacks.signature = IDC_SIGNATURE;
+ np->prov_callbacks.maj_ver = I40E_CLIENT_VERSION_MAJOR;
+ np->prov_callbacks.min_ver = I40E_CLIENT_VERSION_MINOR;
+ memset(np->prov_callbacks.rsvd, 0, sizeof(np->prov_callbacks.rsvd));
+ np->prov_callbacks.reg_peer_driver = i40e_register_client;
+ np->prov_callbacks.unreg_peer_driver = i40e_unregister_client;
+
hw_enc_features = NETIF_F_SG |
NETIF_F_IP_CSUM |
NETIF_F_IPV6_CSUM |