User Manual

Rev 2.2-1.0.1
Mellanox Technologies
101
4.9.2.2 Masked Fetch and Add (MFetchAdd)
The MFetchAdd Atomic operation extends the functionality of the standard IB FetchAdd by
allowing the user to split the tar
get into multiple fields of selectable length. The atomic add is
done independently on each one of this fields. A bit set in the field_boundary parameter specifies
the field boundaries. The pseudocode below describes the operation:
| bit_adder(ci, b1, b2, *co)
| {
| value = ci + b1 + b2
| *co = !!(value & 2)
|
| return value & 1
| }
|
| #define MASK_IS_SET(mask, attr) (!!((mask)&(attr)))
| bit_position = 1
| carry = 0
| atomic_response = 0
|
| for i = 0 to 63
| {
| if ( i != 0 )
| bit_position = bit_position << 1
|
| bit_add_res = bit_adder(carry, MASK_IS_SET(*va, bit_position),
| MASK_IS_SET(compare_add, bit_position), &new_carry)
| if (bit_add_res)
| atomic_response |= bit_position
|
| carry = ((new_carry) && (!MASK_IS_SET(compare_add_mask, bit_position)))
| }
|
| return atomic_response
4.10 Ethernet Tunneling Over IPoIB Driver (eIPoIB)
The eth_ipoib driver provides a standard Ethernet interface to be used as a Physical Interface
(PIF) into the Hypervisor virtual network, and serves one or more Virtual Interfaces (VIF). This
driver supports L2 Switching (Direct Bridging) as well as other L3 Switching modes (e.g. NAT).
This document explains the configuration and driver behavior when configured in Bridging
mode.
In virtualization environment, a virtual machine can be expose to the physical network by per-
forming the next setting:
Step 1. Create a virtual bridge
Step 2. Attach the para-virtualized interface created by the eth_ipoib driver to the bridge
Step 3. Attach the Ethernet interface in the Virtual Machine to that bridge