Skip to content

Commit dc850b0

Browse files
kaberdavem330
authored andcommitted
IPoIB: add support for TIPC protocol
Support TIPC in the IPoIB driver. Since IPoIB now keeps track of its own neighbour entries and doesn't require the packet to have a dst_entry anymore, the only necessary changes are to: - not drop multicast TIPC packets because of the unknown ethernet type - handle unicast TIPC packets similar to IPv4/IPv6 unicast packets in ipoib_start_xmit(). An alternative would be to remove all ethertype limitations since they're not necessary anymore, all TIPC needs to know about is ARP and RARP since it wants to always perform "path find", even if a path is already known. Signed-off-by: Patrick McHardy <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent a29a194 commit dc850b0

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

drivers/infiniband/ulp/ipoib/ipoib_main.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -730,7 +730,8 @@ static int ipoib_start_xmit(struct sk_buff *skb, struct net_device *dev)
730730
if ((header->proto != htons(ETH_P_IP)) &&
731731
(header->proto != htons(ETH_P_IPV6)) &&
732732
(header->proto != htons(ETH_P_ARP)) &&
733-
(header->proto != htons(ETH_P_RARP))) {
733+
(header->proto != htons(ETH_P_RARP)) &&
734+
(header->proto != htons(ETH_P_TIPC))) {
734735
/* ethertype not supported by IPoIB */
735736
++dev->stats.tx_dropped;
736737
dev_kfree_skb_any(skb);
@@ -751,6 +752,7 @@ static int ipoib_start_xmit(struct sk_buff *skb, struct net_device *dev)
751752
switch (header->proto) {
752753
case htons(ETH_P_IP):
753754
case htons(ETH_P_IPV6):
755+
case htons(ETH_P_TIPC):
754756
neigh = ipoib_neigh_get(dev, cb->hwaddr);
755757
if (unlikely(!neigh)) {
756758
neigh_add_path(skb, cb->hwaddr, dev);

0 commit comments

Comments
 (0)