Commit 89eaa309 authored by Antoine Kaufmann's avatar Antoine Kaufmann
Browse files

i40e: caps and switch config changes to make dpdk happy

parent 73ef553b
...@@ -106,6 +106,8 @@ void queue_admin_tx::cmd_run(void *desc, uint32_t idx, void *data) ...@@ -106,6 +106,8 @@ void queue_admin_tx::cmd_run(void *desc, uint32_t idx, void *data)
{ I40E_AQ_CAP_ID_RXQ, 1, 0, dev.NUM_QUEUES, 0, 0, {} }, { I40E_AQ_CAP_ID_RXQ, 1, 0, dev.NUM_QUEUES, 0, 0, {} },
{ I40E_AQ_CAP_ID_TXQ, 1, 0, dev.NUM_QUEUES, 0, 0, {} }, { I40E_AQ_CAP_ID_TXQ, 1, 0, dev.NUM_QUEUES, 0, 0, {} },
{ I40E_AQ_CAP_ID_MSIX, 1, 0, dev.NUM_PFINTS, 0, 0, {} }, { I40E_AQ_CAP_ID_MSIX, 1, 0, dev.NUM_PFINTS, 0, 0, {} },
{ I40E_AQ_CAP_ID_VSI, 1, 0, dev.NUM_VSIS, 0, 0, {} },
{ I40E_AQ_CAP_ID_DCB, 1, 0, 1, 1, 1, {} },
}; };
size_t num_caps = sizeof(caps) / sizeof(caps[0]); size_t num_caps = sizeof(caps) / sizeof(caps[0]);
...@@ -162,18 +164,31 @@ void queue_admin_tx::cmd_run(void *desc, uint32_t idx, void *data) ...@@ -162,18 +164,31 @@ void queue_admin_tx::cmd_run(void *desc, uint32_t idx, void *data)
struct i40e_aqc_switch_seid *sw = reinterpret_cast< struct i40e_aqc_switch_seid *sw = reinterpret_cast<
struct i40e_aqc_switch_seid *>(d->params.raw); struct i40e_aqc_switch_seid *>(d->params.raw);
struct i40e_aqc_get_switch_config_header_resp hr; struct i40e_aqc_get_switch_config_header_resp hr;
/* Not sure why dpdk doesn't like this?
struct i40e_aqc_switch_config_element_resp els[] = { struct i40e_aqc_switch_config_element_resp els[] = {
// MAC // EMC
{ I40E_AQ_SW_ELEM_TYPE_MAC, I40E_AQ_SW_ELEM_REV_1, 1, 0, 0, {}, { I40E_AQ_SW_ELEM_TYPE_EMP, I40E_AQ_SW_ELEM_REV_1, 1, 513, 0, {},
I40E_AQ_CONN_TYPE_REGULAR, 0, 0}, I40E_AQ_CONN_TYPE_REGULAR, 0, 0},
// VSI // MAC
{ I40E_AQ_SW_ELEM_TYPE_VSI, I40E_AQ_SW_ELEM_REV_1, 2, 1, 3, {}, { I40E_AQ_SW_ELEM_TYPE_MAC, I40E_AQ_SW_ELEM_REV_1, 2, 0, 0, {},
I40E_AQ_CONN_TYPE_REGULAR, 0, 0}, I40E_AQ_CONN_TYPE_REGULAR, 0, 0},
// PF // PF
{ I40E_AQ_SW_ELEM_TYPE_PF, I40E_AQ_SW_ELEM_REV_1, 3, 2, 0, {}, { I40E_AQ_SW_ELEM_TYPE_PF, I40E_AQ_SW_ELEM_REV_1, 16, 512, 0, {},
I40E_AQ_CONN_TYPE_REGULAR, 0, 0},
// VSI PF
{ I40E_AQ_SW_ELEM_TYPE_VSI, I40E_AQ_SW_ELEM_REV_1, 512, 2, 16, {},
I40E_AQ_CONN_TYPE_REGULAR, 0, 0},
// VSI PF
{ I40E_AQ_SW_ELEM_TYPE_VSI, I40E_AQ_SW_ELEM_REV_1, 513, 2, 1, {},
I40E_AQ_CONN_TYPE_REGULAR, 0, 0},
};*/
struct i40e_aqc_switch_config_element_resp els[] = {
// VSI PF
{ I40E_AQ_SW_ELEM_TYPE_VSI, I40E_AQ_SW_ELEM_REV_1, 512, 2, 16, {},
I40E_AQ_CONN_TYPE_REGULAR, 0, 0}, I40E_AQ_CONN_TYPE_REGULAR, 0, 0},
}; };
// find start idx // find start idx
size_t cnt = sizeof(els) / sizeof(els[0]); size_t cnt = sizeof(els) / sizeof(els[0]);
size_t first = 0; size_t first = 0;
......
...@@ -310,6 +310,7 @@ protected: ...@@ -310,6 +310,7 @@ protected:
static const uint32_t NUM_QUEUES = 1536; static const uint32_t NUM_QUEUES = 1536;
static const uint32_t NUM_PFINTS = 512; static const uint32_t NUM_PFINTS = 512;
static const uint32_t NUM_VSIS = 384;
static const uint16_t MAX_MTU = 2048; static const uint16_t MAX_MTU = 2048;
struct i40e_regs { struct i40e_regs {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment