History

IB/mlx4: Handle protocol field in multicast table

The newest device firmware stores IB vs. Ethernet protocol in two bits in members_count field of multicast group table (0: Infiniband, 1: Ethernet). When changing the QP members count for a multicast group, it important not to reset this information. When calling multicast attach first time, the protocol type should be specified. In this patch we always set it IB, but in the future we will handle Ethernet too. When looking for a QP, the protocol type shoud be checked too.

Aleksey Senin committed 15 years ago

Commit da995a81 parent 4979d184 files · +27 −21Browse files

Showing the changes to include/linux/mlx4 (2 of 4 files). Show all

Unified · Split

2 files
  1. include/linux/mlx4/device.h +8 −2
  2. include/linux/mlx4/driver.h +1 −5
include/linux/mlx4/device.h+8−2
@@ -144,6 +144,11 @@ enum { · 143 unmodified lines
144 MLX4_STAT_RATE_OFFSET = 5144 MLX4_STAT_RATE_OFFSET = 5
145};145};
146 146
147enum mlx4_protocol {
148 MLX4_PROTOCOL_IB,
149 MLX4_PROTOCOL_EN,
150};
151
147enum {152enum {
148 MLX4_MTT_FLAG_PRESENT = 1153 MLX4_MTT_FLAG_PRESENT = 1
149};154};
@@ -500,8 +505,9 @@ int mlx4_INIT_PORT(struct mlx4_dev *dev, int port); · 350 unmodified lines
500int mlx4_CLOSE_PORT(struct mlx4_dev *dev, int port);505int mlx4_CLOSE_PORT(struct mlx4_dev *dev, int port);
501 506
502int mlx4_multicast_attach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16],507int mlx4_multicast_attach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16],
503 int block_mcast_loopback);508 int block_mcast_loopback, enum mlx4_protocol protocol);
504int mlx4_multicast_detach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16]);509int mlx4_multicast_detach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16],
510 enum mlx4_protocol protocol);
505 511
506int mlx4_register_mac(struct mlx4_dev *dev, u8 port, u64 mac, int *index);512int mlx4_register_mac(struct mlx4_dev *dev, u8 port, u64 mac, int *index);
507void mlx4_unregister_mac(struct mlx4_dev *dev, u8 port, int index);513void mlx4_unregister_mac(struct mlx4_dev *dev, u8 port, int index);
include/linux/mlx4/driver.h+1−5
@@ -34,6 +34,7 @@ · 33 unmodified lines
34#define MLX4_DRIVER_H34#define MLX4_DRIVER_H
35 35
36#include <linux/device.h>36#include <linux/device.h>
37#include <linux/mlx4/device.h>
37 38
38struct mlx4_dev;39struct mlx4_dev;
39 40
@@ -44,11 +45,6 @@ enum mlx4_dev_event { · 4 unmodified lines
44 MLX4_DEV_EVENT_PORT_REINIT,45 MLX4_DEV_EVENT_PORT_REINIT,
45};46};
46 47
47enum mlx4_protocol {
48 MLX4_PROTOCOL_IB,
49 MLX4_PROTOCOL_EN,
50};
51
52struct mlx4_interface {48struct mlx4_interface {
53 void * (*add) (struct mlx4_dev *dev);49 void * (*add) (struct mlx4_dev *dev);
54 void (*remove)(struct mlx4_dev *dev, void *context);50 void (*remove)(struct mlx4_dev *dev, void *context);

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t