net: dsa: introduce dsa_towards_port helper
Add a new helper returning the local port used to reach an arbitrary switch port in the fabric. Its only user at the moment is the dsa_upstream_port helper, which returns the local port reaching the dedicated CPU port, but it will be used in cross-chip FDB operations. Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
5420683ae3
commit
3b8fac5d90
@ -296,20 +296,23 @@ static inline u32 dsa_user_ports(struct dsa_switch *ds)
|
|||||||
return mask;
|
return mask;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return the local port used to reach an arbitrary switch port */
|
||||||
|
static inline unsigned int dsa_towards_port(struct dsa_switch *ds, int device,
|
||||||
|
int port)
|
||||||
|
{
|
||||||
|
if (device == ds->index)
|
||||||
|
return port;
|
||||||
|
else
|
||||||
|
return ds->rtable[device];
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Return the local port used to reach the dedicated CPU port */
|
||||||
static inline u8 dsa_upstream_port(struct dsa_switch *ds)
|
static inline u8 dsa_upstream_port(struct dsa_switch *ds)
|
||||||
{
|
{
|
||||||
struct dsa_switch_tree *dst = ds->dst;
|
struct dsa_switch_tree *dst = ds->dst;
|
||||||
|
struct dsa_port *cpu_dp = dst->cpu_dp;
|
||||||
|
|
||||||
/*
|
return dsa_towards_port(ds, cpu_dp->ds->index, cpu_dp->index);
|
||||||
* If this is the root switch (i.e. the switch that connects
|
|
||||||
* to the CPU), return the cpu port number on this switch.
|
|
||||||
* Else return the (DSA) port number that connects to the
|
|
||||||
* switch that is one hop closer to the cpu.
|
|
||||||
*/
|
|
||||||
if (dst->cpu_dp->ds == ds)
|
|
||||||
return dst->cpu_dp->index;
|
|
||||||
else
|
|
||||||
return ds->rtable[dst->cpu_dp->ds->index];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef int dsa_fdb_dump_cb_t(const unsigned char *addr, u16 vid,
|
typedef int dsa_fdb_dump_cb_t(const unsigned char *addr, u16 vid,
|
||||||
|
Loading…
Reference in New Issue
Block a user