beautypg.com

4 querying the hardware time, 6 flow steering, 1 enable/disable flow steering – Dell Mellanox Family of Adapters User Manual

Page 38

background image

Driver Installation and Configuration

Rev 1.1

Mellanox Technologies

38

4.2.5.4 Querying the Hardware Time

Querying the hardware for time is done via the

ibv_query_values_ex

verb.

For example:

To change the queried time in nanoseconds resolution, use the

IBV_VALUES_HW_CLOCK_NS

flag

along with the

hwclock_ns

field.

4.2.6

Flow Steering

Flow steering is a new model which steers network flows based on flow specifications to specific
QPs. Those flows can be either unicast or multicast network flows. In order to maintain flexibil-
ity, domains and priorities are used. Flow steering uses a methodology of flow attribute, which is
a combination of L2-L4 flow specifications, a destination QP and a priority. Flow steering rules
may be inserted either by using ethtool or by using InfiniBand verbs. The verbs abstraction uses a
different terminology from the flow attribute (ibv_flow_attr), defined by a combination of speci-
fications (struct ibv_flow_spec_*).

4.2.6.1 Enable/Disable Flow Steering

Flow Steering is disabled by default and regular L2 steering is performed instead (B0 Steering).
When using SR-IOV, flow steering is enabled if there is an adequate amount of space to store the
flow steering table for the guest/master.
To enable Flow Steering:

Step 1.

Open the

/etc/modprobe.d/mlnx.conf

file.

Step 2.

Set the parameter

log_num_mgm_entry_size

to

-1

by writing the option

mlx4_core

log_num_mgm_entry_size=-1

.

Step 3.

Restart the driver

To disable Flow Steering:

Step 1.

Open the

/etc/modprobe.d/mlnx.conf

file.

Step 2.

Remove the

options mlx4_core log_num_mgm_entry_size= -1

.

Step 3.

Restart the driver

ret = ibv_query_values_ex(context, IBV_VALUES_HW_CLOCK, &queried_values);

if (!ret && queried_values.comp_mask & IBV_VALUES_HW_CLOCK)

queried_time = queried_values.hwclock;

ret = ibv_query_values_ex(context, IBV_VALUES_HW_CLOCK_NS, &queried_values);

if (!ret && queried_values.comp_mask & IBV_VALUES_HW_CLOCK_NS)

queried_time_ns = queried_values.hwclock_ns;

Querying the Hardware Time is available only on physical functions / native machines.

Flow Steering is applicable to the mlx4 driver only.