mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 08:42:12 +02:00
drivers: net: vsc9953: Add LAG support
You can now configure LAG on VSC9953's ports using the command: ethsw [port <port_no>] aggr {[help] | show | <lag_group_no>} A port must belong to a single LAG. By default, a port belongs to a LAG equal to the port's number. For each frame, a hash will be calculated based on Source/Destination MAC addresses, Source/Destination IP(v4/v6) addresses, Source/Destination ports. This hash will be used to select a single egress port from LAG. This also assures that frames from the same flow will always have the same egress port. Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@freescale.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
This commit is contained in:
committed by
Joe Hershberger
parent
bf9f2ed83b
commit
aae0e68909
@@ -12,6 +12,7 @@
|
||||
#define ETHSW_MAX_CMD_PARAMS 20
|
||||
#define ETHSW_CMD_PORT_ALL -1
|
||||
#define ETHSW_CMD_VLAN_ALL -1
|
||||
#define ETHSW_CMD_AGGR_GRP_NONE -1
|
||||
|
||||
/* IDs used to track keywords in a command */
|
||||
enum ethsw_keyword_id {
|
||||
@@ -41,6 +42,7 @@ enum ethsw_keyword_id {
|
||||
ethsw_id_private,
|
||||
ethsw_id_ingress,
|
||||
ethsw_id_filtering,
|
||||
ethsw_id_aggr,
|
||||
ethsw_id_count, /* keep last */
|
||||
};
|
||||
|
||||
@@ -50,6 +52,7 @@ enum ethsw_keyword_opt_id {
|
||||
ethsw_id_pvid_no,
|
||||
ethsw_id_add_del_no,
|
||||
ethsw_id_add_del_mac,
|
||||
ethsw_id_aggr_no,
|
||||
ethsw_id_count_all, /* keep last */
|
||||
};
|
||||
|
||||
@@ -58,6 +61,7 @@ struct ethsw_command_def {
|
||||
int cmd_keywords_nr;
|
||||
int port;
|
||||
int vid;
|
||||
int aggr_grp;
|
||||
uchar ethaddr[6];
|
||||
int (*cmd_function)(struct ethsw_command_def *parsed_cmd);
|
||||
};
|
||||
@@ -88,6 +92,8 @@ struct ethsw_command_func {
|
||||
int (*vlan_learn_set)(struct ethsw_command_def *parsed_cmd);
|
||||
int (*port_ingr_filt_show)(struct ethsw_command_def *parsed_cmd);
|
||||
int (*port_ingr_filt_set)(struct ethsw_command_def *parsed_cmd);
|
||||
int (*port_aggr_show)(struct ethsw_command_def *parsed_cmd);
|
||||
int (*port_aggr_set)(struct ethsw_command_def *parsed_cmd);
|
||||
};
|
||||
|
||||
int ethsw_define_functions(const struct ethsw_command_func *cmd_func);
|
||||
|
Reference in New Issue
Block a user