From a477538dcb605a0607029a573e03b10fb8469f87 Mon Sep 17 00:00:00 2001 From: Rafi Wiener Date: Wed, 31 Oct 2018 10:53:55 +0200 Subject: [PATCH] issue: 1521601 Fix user defined flow tag handling Fix is due to CX3 change in VMA. Signed-off-by: Rafi Wiener --- src/vma/dev/ring_simple.h | 1 - src/vma/sock/sockinfo.cpp | 11 +---------- src/vma/sock/sockinfo.h | 1 - 3 files changed, 1 insertion(+), 12 deletions(-) diff --git a/src/vma/dev/ring_simple.h b/src/vma/dev/ring_simple.h index f61141ca1c..ca8ef9c085 100644 --- a/src/vma/dev/ring_simple.h +++ b/src/vma/dev/ring_simple.h @@ -102,7 +102,6 @@ class ring_simple : public ring_slave virtual int get_tx_channel_fd() const { return m_p_tx_comp_event_channel ? m_p_tx_comp_event_channel->fd : -1; }; struct ibv_comp_channel* get_tx_comp_event_channel() { return m_p_tx_comp_event_channel; } int get_ring_descriptors(vma_mlx_hw_device_data &data); - void disable_flow_tag() { m_flow_tag_enabled = false; } friend class cq_mgr; friend class cq_mgr_mlx5; friend class qp_mgr; diff --git a/src/vma/sock/sockinfo.cpp b/src/vma/sock/sockinfo.cpp index ae95d8b06e..76d7886ef2 100644 --- a/src/vma/sock/sockinfo.cpp +++ b/src/vma/sock/sockinfo.cpp @@ -90,8 +90,7 @@ sockinfo::sockinfo(int fd): m_flow_tag_enabled(false), m_n_uc_ttl(safe_mce_sys().sysctl_reader.get_net_ipv4_ttl()), m_tcp_flow_is_5t(false), - m_p_rings_fds(NULL), - m_user_def_flow_tag(false) + m_p_rings_fds(NULL) { m_ring_alloc_logic = ring_allocation_logic_rx(get_fd(), m_ring_alloc_log_rx, this); @@ -280,7 +279,6 @@ int sockinfo::setsockopt(int __level, int __optname, const void *__optval, sockl if (__optval) { if (__optlen == sizeof(uint32_t)) { if (set_flow_tag(*(uint32_t*)__optval)) { - m_user_def_flow_tag = true; si_logdbg("SO_VMA_FLOW_TAG, set " "socket %s to flow id %d", m_fd, m_flow_tag_id); @@ -619,13 +617,6 @@ bool sockinfo::attach_receiver(flow_tuple_with_local_if &flow_key) // Attach tuple BULLSEYE_EXCLUDE_BLOCK_START unlock_rx_q(); - if (m_user_def_flow_tag) { - ring_simple *p_ring = dynamic_cast(p_nd_resources->p_ring); - if (p_ring) { - p_ring->disable_flow_tag(); - } - - } if (!p_nd_resources->p_ring->attach_flow(flow_key, this)) { lock_rx_q(); si_logdbg("Failed to attach %s to ring %p", flow_key.to_str(), p_nd_resources->p_ring); diff --git a/src/vma/sock/sockinfo.h b/src/vma/sock/sockinfo.h index de64e11d1d..3cfad4f0f8 100644 --- a/src/vma/sock/sockinfo.h +++ b/src/vma/sock/sockinfo.h @@ -259,7 +259,6 @@ class sockinfo : public socket_fd_api, public pkt_rcvr_sink, public pkt_sndr_sou bool m_tcp_flow_is_5t; // to bypass packet analysis int* m_p_rings_fds; - bool m_user_def_flow_tag; virtual void set_blocking(bool is_blocked); virtual int fcntl(int __cmd, unsigned long int __arg); virtual int ioctl(unsigned long int __request, unsigned long int __arg);