p_eth->hdr.src = p_src->mac;\r
p_eth->hdr.dst = p_dst->mac;\r
\r
- if (p_dst->h_mcast) {\r
- p_dst->is_in_use = TRUE;\r
+ if ( p_eth->hdr.dst.addr[0] == 1 && \r
+ p_eth->hdr.type == ETH_PROT_TYPE_IP &&\r
+ p_eth->hdr.dst.addr[2] == 0x5E) \r
+ {\r
+ p_eth->hdr.dst.addr[1] = 0;\r
+ p_eth->hdr.dst.addr[3] = p_eth->hdr.dst.addr[3] & 0x7f;\r
}\r
+ if (p_dst->h_mcast)\r
+ p_dst->is_in_use = TRUE;\r
+\r
IPOIB_EXIT( IPOIB_DBG_RECV );\r
return IB_SUCCESS;\r
}\r
\r
static void __port_do_mcast_garbage(ipoib_port_t* const p_port)\r
{\r
- const mac_addr_t DEFAULT_MCAST_GROUP = {0x01, 0x00, 0x5e, 0x00, 0x00, 0x01};\r
+ const mac_addr_t DEFAULT_MCAST_GROUP = {0x01, 0x00, 0x5E, 0x00, 0x00, 0x01};\r
/* Do garbage collecting... */\r
\r
cl_map_item_t *p_item;\r