aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVadim Lomovtsev <Vadim.Lomovtsev@cavium.com>2018-03-30 07:59:50 -0400
committerDavid S. Miller <davem@davemloft.net>2018-03-31 22:18:17 -0400
commit0b849f58f27b974f204477a71c2239986770a22c (patch)
tree2e5684df84a22aa705eda3fdee6017ee7fe27421
parentceb9ea21cc124f8653e4bb1b06fb6e051bd408fe (diff)
net: thunderx: add new messages for handle ndo_set_rx_mode callback
The kernel calls ndo_set_rx_mode() callback supplying it will all necessary info, such as device state flags, multicast mac addresses list and so on. Since we have only 128 bits to communicate with PF we need to initiate several requests to PF with small/short operation each based on input data. So this commit implements following PF messages codes along with new data structures for them: NIC_MBOX_MSG_RESET_XCAST to flush all filters configured for this particular network interface (VF) NIC_MBOX_MSG_ADD_MCAST to add new MAC address to DMAC filter registers for this particular network interface (VF) NIC_MBOX_MSG_SET_XCAST to apply filtering configuration to filter control register Signed-off-by: Vadim Lomovtsev <Vadim.Lomovtsev@cavium.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/cavium/thunder/nic.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/net/ethernet/cavium/thunder/nic.h b/drivers/net/ethernet/cavium/thunder/nic.h
index 4cacce5d2b16..069289b4f968 100644
--- a/drivers/net/ethernet/cavium/thunder/nic.h
+++ b/drivers/net/ethernet/cavium/thunder/nic.h
@@ -403,6 +403,9 @@ struct nicvf {
403#define NIC_MBOX_MSG_PTP_CFG 0x19 /* HW packet timestamp */ 403#define NIC_MBOX_MSG_PTP_CFG 0x19 /* HW packet timestamp */
404#define NIC_MBOX_MSG_CFG_DONE 0xF0 /* VF configuration done */ 404#define NIC_MBOX_MSG_CFG_DONE 0xF0 /* VF configuration done */
405#define NIC_MBOX_MSG_SHUTDOWN 0xF1 /* VF is being shutdown */ 405#define NIC_MBOX_MSG_SHUTDOWN 0xF1 /* VF is being shutdown */
406#define NIC_MBOX_MSG_RESET_XCAST 0xF2 /* Reset DCAM filtering mode */
407#define NIC_MBOX_MSG_ADD_MCAST 0xF3 /* Add MAC to DCAM filters */
408#define NIC_MBOX_MSG_SET_XCAST 0xF4 /* Set MCAST/BCAST RX mode */
406 409
407struct nic_cfg_msg { 410struct nic_cfg_msg {
408 u8 msg; 411 u8 msg;
@@ -556,6 +559,14 @@ struct set_ptp {
556 bool enable; 559 bool enable;
557}; 560};
558 561
562struct xcast {
563 u8 msg;
564 union {
565 u8 mode;
566 u64 mac;
567 } data;
568};
569
559/* 128 bit shared memory between PF and each VF */ 570/* 128 bit shared memory between PF and each VF */
560union nic_mbx { 571union nic_mbx {
561 struct { u8 msg; } msg; 572 struct { u8 msg; } msg;
@@ -576,6 +587,7 @@ union nic_mbx {
576 struct reset_stat_cfg reset_stat; 587 struct reset_stat_cfg reset_stat;
577 struct pfc pfc; 588 struct pfc pfc;
578 struct set_ptp ptp; 589 struct set_ptp ptp;
590 struct xcast xcast;
579}; 591};
580 592
581#define NIC_NODE_ID_MASK 0x03 593#define NIC_NODE_ID_MASK 0x03