mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 10:33:41 +02:00
mlxsw: Define Tx header fields in txheader.h
The next patch will move Tx header constructing to pci.c. As preparation, move the definitions of Tx header fields from spectrum.c to txheader.h, so pci.c will include this header and can access the fields. Remove 'etclass' which is not used. Signed-off-by: Amit Cohen <amcohen@nvidia.com> Reviewed-by: Ido Schimmel <idosch@nvidia.com> Signed-off-by: Petr Machata <petrm@nvidia.com> Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> Link: https://patch.msgid.link/2250b5cb3998ab4850fc8251c3a0f5926d32e194.1737044384.git.petrm@nvidia.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
e8e08279d3
commit
c89d9c3d0a
|
|
@ -107,74 +107,6 @@ static const unsigned char mlxsw_sp2_mac_mask[ETH_ALEN] = {
|
|||
0xff, 0xff, 0xff, 0xff, 0xf0, 0x00
|
||||
};
|
||||
|
||||
/* tx_hdr_version
|
||||
* Tx header version.
|
||||
* Must be set to 1.
|
||||
*/
|
||||
MLXSW_ITEM32(tx, hdr, version, 0x00, 28, 4);
|
||||
|
||||
/* tx_hdr_ctl
|
||||
* Packet control type.
|
||||
* 0 - Ethernet control (e.g. EMADs, LACP)
|
||||
* 1 - Ethernet data
|
||||
*/
|
||||
MLXSW_ITEM32(tx, hdr, ctl, 0x00, 26, 2);
|
||||
|
||||
/* tx_hdr_proto
|
||||
* Packet protocol type. Must be set to 1 (Ethernet).
|
||||
*/
|
||||
MLXSW_ITEM32(tx, hdr, proto, 0x00, 21, 3);
|
||||
|
||||
/* tx_hdr_rx_is_router
|
||||
* Packet is sent from the router. Valid for data packets only.
|
||||
*/
|
||||
MLXSW_ITEM32(tx, hdr, rx_is_router, 0x00, 19, 1);
|
||||
|
||||
/* tx_hdr_fid_valid
|
||||
* Indicates if the 'fid' field is valid and should be used for
|
||||
* forwarding lookup. Valid for data packets only.
|
||||
*/
|
||||
MLXSW_ITEM32(tx, hdr, fid_valid, 0x00, 16, 1);
|
||||
|
||||
/* tx_hdr_swid
|
||||
* Switch partition ID. Must be set to 0.
|
||||
*/
|
||||
MLXSW_ITEM32(tx, hdr, swid, 0x00, 12, 3);
|
||||
|
||||
/* tx_hdr_control_tclass
|
||||
* Indicates if the packet should use the control TClass and not one
|
||||
* of the data TClasses.
|
||||
*/
|
||||
MLXSW_ITEM32(tx, hdr, control_tclass, 0x00, 6, 1);
|
||||
|
||||
/* tx_hdr_etclass
|
||||
* Egress TClass to be used on the egress device on the egress port.
|
||||
*/
|
||||
MLXSW_ITEM32(tx, hdr, etclass, 0x00, 0, 4);
|
||||
|
||||
/* tx_hdr_port_mid
|
||||
* Destination local port for unicast packets.
|
||||
* Destination multicast ID for multicast packets.
|
||||
*
|
||||
* Control packets are directed to a specific egress port, while data
|
||||
* packets are transmitted through the CPU port (0) into the switch partition,
|
||||
* where forwarding rules are applied.
|
||||
*/
|
||||
MLXSW_ITEM32(tx, hdr, port_mid, 0x04, 16, 16);
|
||||
|
||||
/* tx_hdr_fid
|
||||
* Forwarding ID used for L2 forwarding lookup. Valid only if 'fid_valid' is
|
||||
* set, otherwise calculated based on the packet's VID using VID to FID mapping.
|
||||
* Valid for data packets only.
|
||||
*/
|
||||
MLXSW_ITEM32(tx, hdr, fid, 0x08, 16, 16);
|
||||
|
||||
/* tx_hdr_type
|
||||
* 0 - Data packets
|
||||
* 6 - Control packets
|
||||
*/
|
||||
MLXSW_ITEM32(tx, hdr, type, 0x0C, 0, 4);
|
||||
|
||||
int mlxsw_sp_flow_counter_get(struct mlxsw_sp *mlxsw_sp,
|
||||
unsigned int counter_index, bool clear,
|
||||
u64 *packets, u64 *bytes)
|
||||
|
|
|
|||
|
|
@ -4,6 +4,69 @@
|
|||
#ifndef _MLXSW_TXHEADER_H
|
||||
#define _MLXSW_TXHEADER_H
|
||||
|
||||
/* tx_hdr_version
|
||||
* Tx header version.
|
||||
* Must be set to 1.
|
||||
*/
|
||||
MLXSW_ITEM32(tx, hdr, version, 0x00, 28, 4);
|
||||
|
||||
/* tx_hdr_ctl
|
||||
* Packet control type.
|
||||
* 0 - Ethernet control (e.g. EMADs, LACP)
|
||||
* 1 - Ethernet data
|
||||
*/
|
||||
MLXSW_ITEM32(tx, hdr, ctl, 0x00, 26, 2);
|
||||
|
||||
/* tx_hdr_proto
|
||||
* Packet protocol type. Must be set to 1 (Ethernet).
|
||||
*/
|
||||
MLXSW_ITEM32(tx, hdr, proto, 0x00, 21, 3);
|
||||
|
||||
/* tx_hdr_rx_is_router
|
||||
* Packet is sent from the router. Valid for data packets only.
|
||||
*/
|
||||
MLXSW_ITEM32(tx, hdr, rx_is_router, 0x00, 19, 1);
|
||||
|
||||
/* tx_hdr_fid_valid
|
||||
* Indicates if the 'fid' field is valid and should be used for
|
||||
* forwarding lookup. Valid for data packets only.
|
||||
*/
|
||||
MLXSW_ITEM32(tx, hdr, fid_valid, 0x00, 16, 1);
|
||||
|
||||
/* tx_hdr_swid
|
||||
* Switch partition ID. Must be set to 0.
|
||||
*/
|
||||
MLXSW_ITEM32(tx, hdr, swid, 0x00, 12, 3);
|
||||
|
||||
/* tx_hdr_control_tclass
|
||||
* Indicates if the packet should use the control TClass and not one
|
||||
* of the data TClasses.
|
||||
*/
|
||||
MLXSW_ITEM32(tx, hdr, control_tclass, 0x00, 6, 1);
|
||||
|
||||
/* tx_hdr_port_mid
|
||||
* Destination local port for unicast packets.
|
||||
* Destination multicast ID for multicast packets.
|
||||
*
|
||||
* Control packets are directed to a specific egress port, while data
|
||||
* packets are transmitted through the CPU port (0) into the switch partition,
|
||||
* where forwarding rules are applied.
|
||||
*/
|
||||
MLXSW_ITEM32(tx, hdr, port_mid, 0x04, 16, 16);
|
||||
|
||||
/* tx_hdr_fid
|
||||
* Forwarding ID used for L2 forwarding lookup. Valid only if 'fid_valid' is
|
||||
* set, otherwise calculated based on the packet's VID using VID to FID mapping.
|
||||
* Valid for data packets only.
|
||||
*/
|
||||
MLXSW_ITEM32(tx, hdr, fid, 0x08, 16, 16);
|
||||
|
||||
/* tx_hdr_type
|
||||
* 0 - Data packets
|
||||
* 6 - Control packets
|
||||
*/
|
||||
MLXSW_ITEM32(tx, hdr, type, 0x0C, 0, 4);
|
||||
|
||||
#define MLXSW_TXHDR_LEN 0x10
|
||||
#define MLXSW_TXHDR_VERSION_0 0
|
||||
#define MLXSW_TXHDR_VERSION_1 1
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user