Subject: Re: [PATCH 1/2] drivers: net: cpsw: Add helper functions for VLAN ALE implementation

From: Cyril Chemparathy <[email-masked]>
Date: Tue, 29 Jan 2013 18:38:20 -0500

On 01/28/2013 03:12 PM, Mugunthan V N wrote:
> Add helper functions for VLAN ALE implementations for Add, Delete
> Dump VLAN related ALE entries
>
> Signed-off-by: Mugunthan V N <[email-masked]>
> ---
>   drivers/net/ethernet/ti/cpsw_ale.c |  172 ++++++++++++++++++++++++++++++++++--
>   drivers/net/ethernet/ti/cpsw_ale.h |   11 +++
>   2 files changed, 178 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/net/ethernet/ti/cpsw_ale.c b/drivers/net/ethernet/ti/cpsw_ale.c
> index 0e9ccc2..0d7a60a 100644
> --- a/drivers/net/ethernet/ti/cpsw_ale.c
> +++ b/drivers/net/ethernet/ti/cpsw_ale.c

[...]

> +int cpsw_ale_add_vlan(struct cpsw_ale *ale, u16 vid, int port, int untag,
> +		      int reg_mcast, int unreg_mcast)

[...]

> +int cpsw_ale_del_vlan(struct cpsw_ale *ale, u16 vid, int port)

[...]

> +int cpsw_ale_vlan_add_ucast(struct cpsw_ale *ale, u8 *addr, int port,
> +				int flags, u16 vid)

[...]

> +int cpsw_ale_vlan_del_ucast(struct cpsw_ale *ale, u8 *addr, int port, u16 vid)

[...]

> +int cpsw_ale_vlan_add_mcast(struct cpsw_ale *ale, u8 *addr,
> +		int port_mask, u16 vid, int super, int mcast_state)

[...]

> +int cpsw_ale_vlan_del_mcast(struct cpsw_ale *ale, u8 *addr,
> +				int port_mask, u16 vid)

Are the VLAN and non-VLAN variants different enough to justify separate 
implementations for all these functions?  Could we collapse these by 
generalizing the original to take an optional vlan argument instead?

Thanks
-- Cyril.