Commit 292822e9 authored by Ratheesh Kannoth's avatar Ratheesh Kannoth Committed by Jakub Kicinski

octeontx2: Modify mbox request and response structures

Exact match table modification requires wider fields as it has
more number of slots to fill in. Modifying an entry in exact match
table may cause hash collision and may be required to delete entry
from 4-way 2K table and add to fully associative 32 entry CAM table.
Signed-off-by: default avatarRatheesh Kannoth <rkannoth@marvell.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 87e4ea29
...@@ -169,9 +169,10 @@ M(CGX_GET_PHY_FEC_STATS, 0x219, cgx_get_phy_fec_stats, msg_req, msg_rsp) \ ...@@ -169,9 +169,10 @@ M(CGX_GET_PHY_FEC_STATS, 0x219, cgx_get_phy_fec_stats, msg_req, msg_rsp) \
M(CGX_FEATURES_GET, 0x21B, cgx_features_get, msg_req, \ M(CGX_FEATURES_GET, 0x21B, cgx_features_get, msg_req, \
cgx_features_info_msg) \ cgx_features_info_msg) \
M(RPM_STATS, 0x21C, rpm_stats, msg_req, rpm_stats_rsp) \ M(RPM_STATS, 0x21C, rpm_stats, msg_req, rpm_stats_rsp) \
M(CGX_MAC_ADDR_RESET, 0x21D, cgx_mac_addr_reset, msg_req, msg_rsp) \ M(CGX_MAC_ADDR_RESET, 0x21D, cgx_mac_addr_reset, cgx_mac_addr_reset_req, \
M(CGX_MAC_ADDR_UPDATE, 0x21E, cgx_mac_addr_update, cgx_mac_addr_update_req, \
msg_rsp) \ msg_rsp) \
M(CGX_MAC_ADDR_UPDATE, 0x21E, cgx_mac_addr_update, cgx_mac_addr_update_req, \
cgx_mac_addr_update_rsp) \
M(CGX_PRIO_FLOW_CTRL_CFG, 0x21F, cgx_prio_flow_ctrl_cfg, cgx_pfc_cfg, \ M(CGX_PRIO_FLOW_CTRL_CFG, 0x21F, cgx_prio_flow_ctrl_cfg, cgx_pfc_cfg, \
cgx_pfc_rsp) \ cgx_pfc_rsp) \
/* NPA mbox IDs (range 0x400 - 0x5FF) */ \ /* NPA mbox IDs (range 0x400 - 0x5FF) */ \
...@@ -455,6 +456,7 @@ struct cgx_fec_stats_rsp { ...@@ -455,6 +456,7 @@ struct cgx_fec_stats_rsp {
struct cgx_mac_addr_set_or_get { struct cgx_mac_addr_set_or_get {
struct mbox_msghdr hdr; struct mbox_msghdr hdr;
u8 mac_addr[ETH_ALEN]; u8 mac_addr[ETH_ALEN];
u32 index;
}; };
/* Structure for requesting the operation to /* Structure for requesting the operation to
...@@ -470,7 +472,7 @@ struct cgx_mac_addr_add_req { ...@@ -470,7 +472,7 @@ struct cgx_mac_addr_add_req {
*/ */
struct cgx_mac_addr_add_rsp { struct cgx_mac_addr_add_rsp {
struct mbox_msghdr hdr; struct mbox_msghdr hdr;
u8 index; u32 index;
}; };
/* Structure for requesting the operation to /* Structure for requesting the operation to
...@@ -478,7 +480,7 @@ struct cgx_mac_addr_add_rsp { ...@@ -478,7 +480,7 @@ struct cgx_mac_addr_add_rsp {
*/ */
struct cgx_mac_addr_del_req { struct cgx_mac_addr_del_req {
struct mbox_msghdr hdr; struct mbox_msghdr hdr;
u8 index; u32 index;
}; };
/* Structure for response against the operation to /* Structure for response against the operation to
...@@ -486,7 +488,7 @@ struct cgx_mac_addr_del_req { ...@@ -486,7 +488,7 @@ struct cgx_mac_addr_del_req {
*/ */
struct cgx_max_dmac_entries_get_rsp { struct cgx_max_dmac_entries_get_rsp {
struct mbox_msghdr hdr; struct mbox_msghdr hdr;
u8 max_dmac_filters; u32 max_dmac_filters;
}; };
struct cgx_link_user_info { struct cgx_link_user_info {
...@@ -587,10 +589,20 @@ struct cgx_set_link_mode_rsp { ...@@ -587,10 +589,20 @@ struct cgx_set_link_mode_rsp {
int status; int status;
}; };
struct cgx_mac_addr_reset_req {
struct mbox_msghdr hdr;
u32 index;
};
struct cgx_mac_addr_update_req { struct cgx_mac_addr_update_req {
struct mbox_msghdr hdr; struct mbox_msghdr hdr;
u8 mac_addr[ETH_ALEN]; u8 mac_addr[ETH_ALEN];
u8 index; u32 index;
};
struct cgx_mac_addr_update_rsp {
struct mbox_msghdr hdr;
u32 index;
}; };
#define RVU_LMAC_FEAT_FC BIT_ULL(0) /* pause frames */ #define RVU_LMAC_FEAT_FC BIT_ULL(0) /* pause frames */
...@@ -1636,6 +1648,9 @@ enum cgx_af_status { ...@@ -1636,6 +1648,9 @@ enum cgx_af_status {
LMAC_AF_ERR_PERM_DENIED = -1103, LMAC_AF_ERR_PERM_DENIED = -1103,
LMAC_AF_ERR_PFC_ENADIS_PERM_DENIED = -1104, LMAC_AF_ERR_PFC_ENADIS_PERM_DENIED = -1104,
LMAC_AF_ERR_8023PAUSE_ENADIS_PERM_DENIED = -1105, LMAC_AF_ERR_8023PAUSE_ENADIS_PERM_DENIED = -1105,
LMAC_AF_ERR_EXACT_MATCH_TBL_ADD_FAILED = -1108,
LMAC_AF_ERR_EXACT_MATCH_TBL_DEL_FAILED = -1109,
LMAC_AF_ERR_EXACT_MATCH_TBL_LOOK_UP_FAILED = -1110,
}; };
#endif /* MBOX_H */ #endif /* MBOX_H */
...@@ -1089,7 +1089,7 @@ int rvu_mbox_handler_cgx_set_link_mode(struct rvu *rvu, ...@@ -1089,7 +1089,7 @@ int rvu_mbox_handler_cgx_set_link_mode(struct rvu *rvu,
return 0; return 0;
} }
int rvu_mbox_handler_cgx_mac_addr_reset(struct rvu *rvu, struct msg_req *req, int rvu_mbox_handler_cgx_mac_addr_reset(struct rvu *rvu, struct cgx_mac_addr_reset_req *req,
struct msg_rsp *rsp) struct msg_rsp *rsp)
{ {
int pf = rvu_get_pf(req->hdr.pcifunc); int pf = rvu_get_pf(req->hdr.pcifunc);
...@@ -1104,7 +1104,7 @@ int rvu_mbox_handler_cgx_mac_addr_reset(struct rvu *rvu, struct msg_req *req, ...@@ -1104,7 +1104,7 @@ int rvu_mbox_handler_cgx_mac_addr_reset(struct rvu *rvu, struct msg_req *req,
int rvu_mbox_handler_cgx_mac_addr_update(struct rvu *rvu, int rvu_mbox_handler_cgx_mac_addr_update(struct rvu *rvu,
struct cgx_mac_addr_update_req *req, struct cgx_mac_addr_update_req *req,
struct msg_rsp *rsp) struct cgx_mac_addr_update_rsp *rsp)
{ {
int pf = rvu_get_pf(req->hdr.pcifunc); int pf = rvu_get_pf(req->hdr.pcifunc);
u8 cgx_id, lmac_id; u8 cgx_id, lmac_id;
......
...@@ -93,7 +93,7 @@ static int otx2_dmacflt_do_remove(struct otx2_nic *pfvf, const u8 *mac, ...@@ -93,7 +93,7 @@ static int otx2_dmacflt_do_remove(struct otx2_nic *pfvf, const u8 *mac,
static int otx2_dmacflt_remove_pfmac(struct otx2_nic *pf) static int otx2_dmacflt_remove_pfmac(struct otx2_nic *pf)
{ {
struct msg_req *req; struct cgx_mac_addr_reset_req *req;
int err; int err;
mutex_lock(&pf->mbox.lock); mutex_lock(&pf->mbox.lock);
......
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