net: switchdev: extract struct switchdev_obj_*
Now that switchdev and its drivers directly use specific switchdev_obj_* structures, move them out of the switchdev_obj union and get rif of this outer structure. Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
ab06900230
commit
44bbcf5c4a
@@ -64,16 +64,15 @@ enum switchdev_obj_id {
|
|||||||
SWITCHDEV_OBJ_PORT_FDB,
|
SWITCHDEV_OBJ_PORT_FDB,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct switchdev_obj {
|
/* SWITCHDEV_OBJ_PORT_VLAN */
|
||||||
enum switchdev_obj_id id;
|
struct switchdev_obj_vlan {
|
||||||
int (*cb)(struct switchdev_obj *obj);
|
|
||||||
union {
|
|
||||||
struct switchdev_obj_vlan { /* PORT_VLAN */
|
|
||||||
u16 flags;
|
u16 flags;
|
||||||
u16 vid_begin;
|
u16 vid_begin;
|
||||||
u16 vid_end;
|
u16 vid_end;
|
||||||
} vlan;
|
};
|
||||||
struct switchdev_obj_ipv4_fib { /* IPV4_FIB */
|
|
||||||
|
/* SWITCHDEV_OBJ_IPV4_FIB */
|
||||||
|
struct switchdev_obj_ipv4_fib {
|
||||||
u32 dst;
|
u32 dst;
|
||||||
int dst_len;
|
int dst_len;
|
||||||
struct fib_info *fi;
|
struct fib_info *fi;
|
||||||
@@ -81,13 +80,13 @@ struct switchdev_obj {
|
|||||||
u8 type;
|
u8 type;
|
||||||
u32 nlflags;
|
u32 nlflags;
|
||||||
u32 tb_id;
|
u32 tb_id;
|
||||||
} ipv4_fib;
|
};
|
||||||
struct switchdev_obj_fdb { /* PORT_FDB */
|
|
||||||
|
/* SWITCHDEV_OBJ_PORT_FDB */
|
||||||
|
struct switchdev_obj_fdb {
|
||||||
const unsigned char *addr;
|
const unsigned char *addr;
|
||||||
u16 vid;
|
u16 vid;
|
||||||
u16 ndm_state;
|
u16 ndm_state;
|
||||||
} fdb;
|
|
||||||
} u;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void switchdev_trans_item_enqueue(struct switchdev_trans *trans,
|
void switchdev_trans_item_enqueue(struct switchdev_trans *trans,
|
||||||
@@ -102,11 +101,11 @@ void *switchdev_trans_item_dequeue(struct switchdev_trans *trans);
|
|||||||
*
|
*
|
||||||
* @switchdev_port_attr_set: Set a port attribute (see switchdev_attr).
|
* @switchdev_port_attr_set: Set a port attribute (see switchdev_attr).
|
||||||
*
|
*
|
||||||
* @switchdev_port_obj_add: Add an object to port (see switchdev_obj).
|
* @switchdev_port_obj_add: Add an object to port (see switchdev_obj_*).
|
||||||
*
|
*
|
||||||
* @switchdev_port_obj_del: Delete an object from port (see switchdev_obj).
|
* @switchdev_port_obj_del: Delete an object from port (see switchdev_obj_*).
|
||||||
*
|
*
|
||||||
* @switchdev_port_obj_dump: Dump port objects (see switchdev_obj).
|
* @switchdev_port_obj_dump: Dump port objects (see switchdev_obj_*).
|
||||||
*/
|
*/
|
||||||
struct switchdev_ops {
|
struct switchdev_ops {
|
||||||
int (*switchdev_port_attr_get)(struct net_device *dev,
|
int (*switchdev_port_attr_get)(struct net_device *dev,
|
||||||
|
Reference in New Issue
Block a user