This fixes net/host byte ordering in ib_member_get/set_sl_flow_hop()
functions.

Signed-off-by: Sasha Khapyorsky <[EMAIL PROTECTED]>


---

 osm/include/iba/ib_types.h |   29 +++++++++++------------------
 1 files changed, 11 insertions(+), 18 deletions(-)

f8c16e36c5294d25136737c7855ffcf718866898
diff --git a/osm/include/iba/ib_types.h b/osm/include/iba/ib_types.h
index 86133ed..7526b4b 100644
--- a/osm/include/iba/ib_types.h
+++ b/osm/include/iba/ib_types.h
@@ -6304,20 +6304,18 @@ ib_member_get_sl_flow_hop(
        OUT uint32_t* const p_flow_lbl,
        OUT uint8_t* const p_hop )
 {
-       ib_net32_t tmp_sl_flow_hop;
+       uint32_t tmp = cl_ntoh32(sl_flow_hop);
 
-       if (p_sl)
-               *p_sl = (uint8_t)(sl_flow_hop & 0x0f);
-
-       tmp_sl_flow_hop = sl_flow_hop >> 4;
+       if (p_hop)
+               *p_hop = (uint8_t)tmp;
+       tmp >>= 8;
 
        if (p_flow_lbl)
-               *p_flow_lbl = (uint32_t)(tmp_sl_flow_hop & 0xfffff);
-
-       tmp_sl_flow_hop = tmp_sl_flow_hop >> 20;
+               *p_flow_lbl = (uint32_t)(tmp & 0xfffff);
+       tmp >>= 20;
 
-       if (p_hop)
-               *p_hop = (uint8_t)(tmp_sl_flow_hop & 0xff);
+       if (p_sl)
+               *p_sl = (uint8_t)tmp;
 }
 /*
 * PARAMETERS
@@ -6355,14 +6353,9 @@ ib_member_set_sl_flow_hop(
        IN const uint32_t flow_label,
        IN const uint8_t hop_limit )
 {
-       ib_net32_t sl_flow_hop;
-
-       sl_flow_hop = hop_limit;
-       sl_flow_hop = sl_flow_hop << 20;
-       sl_flow_hop = sl_flow_hop | flow_label;
-       sl_flow_hop = sl_flow_hop << 2;
-       sl_flow_hop = sl_flow_hop | sl;
-       return (sl_flow_hop);
+       uint32_t tmp;
+       tmp = (sl << 28) | ((flow_label & 0xfffff) << 8) | hop_limit;
+       return cl_hton32(tmp);
 }
 /*
 * PARAMETERS
-- 
1.3.2

_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to