• Home
  • Raw
  • Download

Lines Matching full:vid

17 	u16 vid;  member
39 unsigned int vid) in ocelot_mact_select() argument
46 mach |= vid << 16; in ocelot_mact_select()
61 unsigned int vid, enum macaccess_entry_type type) in ocelot_mact_learn() argument
80 ocelot_mact_select(ocelot, mac, vid); in ocelot_mact_learn()
90 const unsigned char mac[ETH_ALEN], unsigned int vid) in ocelot_mact_forget() argument
92 ocelot_mact_select(ocelot, mac, vid); in ocelot_mact_forget()
150 static int ocelot_vlant_set_mask(struct ocelot *ocelot, u16 vid, u32 mask) in ocelot_vlant_set_mask() argument
152 /* Select the VID to configure */ in ocelot_vlant_set_mask()
153 ocelot_write(ocelot, ANA_TABLES_VLANTIDX_V_INDEX(vid), in ocelot_vlant_set_mask()
164 u16 vid) in ocelot_port_set_native_vlan() argument
169 if (ocelot_port->vid != vid) { in ocelot_port_set_native_vlan()
170 /* Always permit deleting the native VLAN (vid = 0) */ in ocelot_port_set_native_vlan()
171 if (ocelot_port->vid && vid) { in ocelot_port_set_native_vlan()
174 ocelot_port->vid); in ocelot_port_set_native_vlan()
177 ocelot_port->vid = vid; in ocelot_port_set_native_vlan()
180 ocelot_rmw_gix(ocelot, REW_PORT_VLAN_CFG_PORT_VID(vid), in ocelot_port_set_native_vlan()
184 if (ocelot_port->vlan_aware && !ocelot_port->vid) in ocelot_port_set_native_vlan()
198 if (ocelot_port->vid) in ocelot_port_set_native_vlan()
199 /* Tag all frames except when VID == DEFAULT_VLAN */ in ocelot_port_set_native_vlan()
249 ocelot_port_set_native_vlan(ocelot, port, ocelot_port->vid); in ocelot_port_vlan_filtering()
268 int ocelot_vlan_add(struct ocelot *ocelot, int port, u16 vid, bool pvid, in ocelot_vlan_add() argument
274 ocelot->vlan_mask[vid] |= BIT(port); in ocelot_vlan_add()
275 ret = ocelot_vlant_set_mask(ocelot, vid, ocelot->vlan_mask[vid]); in ocelot_vlan_add()
281 ocelot_port_set_pvid(ocelot, port, vid); in ocelot_vlan_add()
285 ret = ocelot_port_set_native_vlan(ocelot, port, vid); in ocelot_vlan_add()
294 int ocelot_vlan_del(struct ocelot *ocelot, int port, u16 vid) in ocelot_vlan_del() argument
300 ocelot->vlan_mask[vid] &= ~BIT(port); in ocelot_vlan_del()
301 ret = ocelot_vlant_set_mask(ocelot, vid, ocelot->vlan_mask[vid]); in ocelot_vlan_del()
306 if (ocelot_port->pvid == vid) in ocelot_vlan_del()
310 if (ocelot_port->vid == vid) in ocelot_vlan_del()
319 u16 port, vid; in ocelot_vlan_init() local
327 for (vid = 1; vid < VLAN_N_VID; vid++) { in ocelot_vlan_init()
328 ocelot->vlan_mask[vid] = 0; in ocelot_vlan_init()
329 ocelot_vlant_set_mask(ocelot, vid, ocelot->vlan_mask[vid]); in ocelot_vlan_init()
332 /* Because VLAN filtering is enabled, we need VID 0 to get untagged in ocelot_vlan_init()
615 const unsigned char *addr, u16 vid) in ocelot_fdb_add() argument
623 if (!vid) { in ocelot_fdb_add()
625 /* If the bridge is not VLAN aware and no VID was in ocelot_fdb_add()
629 vid = ocelot_port->pvid; in ocelot_fdb_add()
631 /* If the bridge is VLAN aware a VID must be provided as in ocelot_fdb_add()
637 return ocelot_mact_learn(ocelot, pgid, addr, vid, ENTRYTYPE_LOCKED); in ocelot_fdb_add()
642 const unsigned char *addr, u16 vid) in ocelot_fdb_del() argument
644 return ocelot_mact_forget(ocelot, addr, vid); in ocelot_fdb_del()
648 int ocelot_port_fdb_do_dump(const unsigned char *addr, u16 vid, in ocelot_port_fdb_do_dump() argument
677 if (vid && nla_put_u16(dump->skb, NDA_VLAN, vid)) in ocelot_port_fdb_do_dump()
733 entry->vid = (mach >> 16) & 0xfff; in ocelot_mact_read()
762 ret = cb(entry.mac, entry.vid, is_static, data); in ocelot_fdb_dump()
1012 u16 vid) in ocelot_multicast_get() argument
1017 if (ether_addr_equal(mc->addr, addr) && mc->vid == vid) in ocelot_multicast_get()
1088 u16 vid = mdb->vid; in ocelot_port_mdb_add() local
1094 if (!vid) in ocelot_port_mdb_add()
1095 vid = ocelot_port->pvid; in ocelot_port_mdb_add()
1099 mc = ocelot_multicast_get(ocelot, mdb->addr, vid); in ocelot_port_mdb_add()
1105 "No more PGIDs available for mdb %pM vid %d\n", in ocelot_port_mdb_add()
1106 mdb->addr, vid); in ocelot_port_mdb_add()
1115 mc->vid = vid; in ocelot_port_mdb_add()
1124 ocelot_mact_forget(ocelot, addr, vid); in ocelot_port_mdb_add()
1130 return ocelot_mact_learn(ocelot, mc->pgid, addr, vid, entry_type); in ocelot_port_mdb_add()
1141 u16 vid = mdb->vid; in ocelot_port_mdb_del() local
1146 if (!vid) in ocelot_port_mdb_del()
1147 vid = ocelot_port->pvid; in ocelot_port_mdb_del()
1149 mc = ocelot_multicast_get(ocelot, mdb->addr, vid); in ocelot_port_mdb_del()
1156 ocelot_mact_forget(ocelot, addr, vid); in ocelot_port_mdb_del()
1167 return ocelot_mact_learn(ocelot, mc->pgid, addr, vid, entry_type); in ocelot_port_mdb_del()