Lines Matching refs:fdb

112 static int qca8k_fdb_read(struct qca8k_priv *priv, struct qca8k_fdb *fdb)  in qca8k_fdb_read()  argument
124 fdb->vid = FIELD_GET(QCA8K_ATU_VID_MASK, reg[2]); in qca8k_fdb_read()
126 fdb->aging = FIELD_GET(QCA8K_ATU_STATUS_MASK, reg[2]); in qca8k_fdb_read()
128 fdb->port_mask = FIELD_GET(QCA8K_ATU_PORT_MASK, reg[1]); in qca8k_fdb_read()
130 fdb->mac[0] = FIELD_GET(QCA8K_ATU_ADDR0_MASK, reg[1]); in qca8k_fdb_read()
131 fdb->mac[1] = FIELD_GET(QCA8K_ATU_ADDR1_MASK, reg[1]); in qca8k_fdb_read()
132 fdb->mac[2] = FIELD_GET(QCA8K_ATU_ADDR2_MASK, reg[0]); in qca8k_fdb_read()
133 fdb->mac[3] = FIELD_GET(QCA8K_ATU_ADDR3_MASK, reg[0]); in qca8k_fdb_read()
134 fdb->mac[4] = FIELD_GET(QCA8K_ATU_ADDR4_MASK, reg[0]); in qca8k_fdb_read()
135 fdb->mac[5] = FIELD_GET(QCA8K_ATU_ADDR5_MASK, reg[0]); in qca8k_fdb_read()
200 static int qca8k_fdb_next(struct qca8k_priv *priv, struct qca8k_fdb *fdb, in qca8k_fdb_next() argument
205 qca8k_fdb_write(priv, fdb->vid, fdb->port_mask, fdb->mac, fdb->aging); in qca8k_fdb_next()
210 return qca8k_fdb_read(priv, fdb); in qca8k_fdb_next()
249 struct qca8k_fdb fdb = { 0 }; in qca8k_fdb_search_and_insert() local
259 ret = qca8k_fdb_read(priv, &fdb); in qca8k_fdb_search_and_insert()
264 if (!fdb.aging) { in qca8k_fdb_search_and_insert()
271 fdb.port_mask |= port_mask; in qca8k_fdb_search_and_insert()
273 qca8k_fdb_write(priv, vid, fdb.port_mask, mac, fdb.aging); in qca8k_fdb_search_and_insert()
284 struct qca8k_fdb fdb = { 0 }; in qca8k_fdb_search_and_del() local
295 if (!fdb.aging) { in qca8k_fdb_search_and_del()
305 if (fdb.port_mask == port_mask) in qca8k_fdb_search_and_del()
309 fdb.port_mask &= ~port_mask; in qca8k_fdb_search_and_del()
311 qca8k_fdb_write(priv, vid, fdb.port_mask, mac, fdb.aging); in qca8k_fdb_search_and_del()