* [PATCH net 0/2] qed: iWARP related fixes
@ 2018-03-14 12:49 Michal Kalderon
2018-03-14 12:49 ` [PATCH net 1/2] qed: Fix MPA unalign flow in case header is split across two packets Michal Kalderon
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Michal Kalderon @ 2018-03-14 12:49 UTC (permalink / raw)
To: michal.kalderon, davem
Cc: netdev, dledford, jgg, linux-rdma, Michal Kalderon, Ariel Elior
This series contains two fixes related to iWARP flow.
Signed-off-by: Michal Kalderon <Michal.Kalderon@cavium.com>
Signed-off-by: Ariel Elior <Ariel.Elior@cavium.com>
Michal Kalderon (2):
qed: Fix MPA unalign flow in case header is split across two packets.
qed: Fix non TCP packets should be dropped on iWARP ll2 connection
drivers/net/ethernet/qlogic/qed/qed_iwarp.c | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
--
2.9.5
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH net 1/2] qed: Fix MPA unalign flow in case header is split across two packets. 2018-03-14 12:49 [PATCH net 0/2] qed: iWARP related fixes Michal Kalderon @ 2018-03-14 12:49 ` Michal Kalderon 2018-03-14 12:49 ` [PATCH net 2/2] qed: Fix non TCP packets should be dropped on iWARP ll2 connection Michal Kalderon 2018-03-16 16:14 ` [PATCH net 0/2] qed: iWARP related fixes David Miller 2 siblings, 0 replies; 6+ messages in thread From: Michal Kalderon @ 2018-03-14 12:49 UTC (permalink / raw) To: michal.kalderon, davem Cc: netdev, dledford, jgg, linux-rdma, Michal Kalderon, Ariel Elior There is a corner case in the MPA unalign flow where a FPDU header is split over two tcp segments. The length of the first fragment in this case was not initialized properly and should be '1' Fixes: c7d1d839 ("qed: Add support for MPA header being split over two tcp packets") Signed-off-by: Michal Kalderon <Michal.Kalderon@cavium.com> Signed-off-by: Ariel Elior <Ariel.Elior@cavium.com> --- drivers/net/ethernet/qlogic/qed/qed_iwarp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/qlogic/qed/qed_iwarp.c b/drivers/net/ethernet/qlogic/qed/qed_iwarp.c index ca4a81d..fefe527 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_iwarp.c +++ b/drivers/net/ethernet/qlogic/qed/qed_iwarp.c @@ -1928,8 +1928,8 @@ qed_iwarp_update_fpdu_length(struct qed_hwfn *p_hwfn, /* Missing lower byte is now available */ mpa_len = fpdu->fpdu_length | *mpa_data; fpdu->fpdu_length = QED_IWARP_FPDU_LEN_WITH_PAD(mpa_len); - fpdu->mpa_frag_len = fpdu->fpdu_length; /* one byte of hdr */ + fpdu->mpa_frag_len = 1; fpdu->incomplete_bytes = fpdu->fpdu_length - 1; DP_VERBOSE(p_hwfn, QED_MSG_RDMA, -- 2.9.5 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH net 2/2] qed: Fix non TCP packets should be dropped on iWARP ll2 connection 2018-03-14 12:49 [PATCH net 0/2] qed: iWARP related fixes Michal Kalderon 2018-03-14 12:49 ` [PATCH net 1/2] qed: Fix MPA unalign flow in case header is split across two packets Michal Kalderon @ 2018-03-14 12:49 ` Michal Kalderon 2018-03-14 13:02 ` Joe Perches 2018-03-16 16:14 ` [PATCH net 0/2] qed: iWARP related fixes David Miller 2 siblings, 1 reply; 6+ messages in thread From: Michal Kalderon @ 2018-03-14 12:49 UTC (permalink / raw) To: michal.kalderon, davem Cc: netdev, dledford, jgg, linux-rdma, Michal Kalderon, Ariel Elior FW workaround. The iWARP LL2 connection did not expect TCP packets to arrive on it's connection. The fix drops any non-tcp packets Fixes b5c29ca ("qed: iWARP CM - setup a ll2 connection for handling SYN packets") Signed-off-by: Michal Kalderon <Michal.Kalderon@cavium.com> Signed-off-by: Ariel Elior <Ariel.Elior@cavium.com> --- drivers/net/ethernet/qlogic/qed/qed_iwarp.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/drivers/net/ethernet/qlogic/qed/qed_iwarp.c b/drivers/net/ethernet/qlogic/qed/qed_iwarp.c index fefe527..d5d02be 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_iwarp.c +++ b/drivers/net/ethernet/qlogic/qed/qed_iwarp.c @@ -1703,6 +1703,13 @@ qed_iwarp_parse_rx_pkt(struct qed_hwfn *p_hwfn, iph = (struct iphdr *)((u8 *)(ethh) + eth_hlen); if (eth_type == ETH_P_IP) { + if (iph->protocol != IPPROTO_TCP) { + DP_NOTICE(p_hwfn, + "Unexpected ip protocol on ll2 %x\n", + iph->protocol); + return -EINVAL; + } + cm_info->local_ip[0] = ntohl(iph->daddr); cm_info->remote_ip[0] = ntohl(iph->saddr); cm_info->ip_version = TCP_IPV4; @@ -1711,6 +1718,14 @@ qed_iwarp_parse_rx_pkt(struct qed_hwfn *p_hwfn, *payload_len = ntohs(iph->tot_len) - ip_hlen; } else if (eth_type == ETH_P_IPV6) { ip6h = (struct ipv6hdr *)iph; + + if (ip6h->nexthdr != IPPROTO_TCP) { + DP_NOTICE(p_hwfn, + "Unexpected ip protocol on ll2 %x\n", + iph->protocol); + return -EINVAL; + } + for (i = 0; i < 4; i++) { cm_info->local_ip[i] = ntohl(ip6h->daddr.in6_u.u6_addr32[i]); -- 2.9.5 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH net 2/2] qed: Fix non TCP packets should be dropped on iWARP ll2 connection 2018-03-14 12:49 ` [PATCH net 2/2] qed: Fix non TCP packets should be dropped on iWARP ll2 connection Michal Kalderon @ 2018-03-14 13:02 ` Joe Perches 2018-03-14 13:29 ` Kalderon, Michal 0 siblings, 1 reply; 6+ messages in thread From: Joe Perches @ 2018-03-14 13:02 UTC (permalink / raw) To: Michal Kalderon, davem; +Cc: netdev, dledford, jgg, linux-rdma, Ariel Elior On Wed, 2018-03-14 at 14:49 +0200, Michal Kalderon wrote: > FW workaround. The iWARP LL2 connection did not expect TCP packets > to arrive on it's connection. The fix drops any non-tcp packets [] > diff --git a/drivers/net/ethernet/qlogic/qed/qed_iwarp.c b/drivers/net/ethernet/qlogic/qed/qed_iwarp.c [] > @@ -1703,6 +1703,13 @@ qed_iwarp_parse_rx_pkt(struct qed_hwfn *p_hwfn, > iph = (struct iphdr *)((u8 *)(ethh) + eth_hlen); > > if (eth_type == ETH_P_IP) { > + if (iph->protocol != IPPROTO_TCP) { > + DP_NOTICE(p_hwfn, > + "Unexpected ip protocol on ll2 %x\n", > + iph->protocol); > + return -EINVAL; > + } Perhaps this should be ratelimited. > + > cm_info->local_ip[0] = ntohl(iph->daddr); > cm_info->remote_ip[0] = ntohl(iph->saddr); > cm_info->ip_version = TCP_IPV4; > @@ -1711,6 +1718,14 @@ qed_iwarp_parse_rx_pkt(struct qed_hwfn *p_hwfn, > *payload_len = ntohs(iph->tot_len) - ip_hlen; > } else if (eth_type == ETH_P_IPV6) { > ip6h = (struct ipv6hdr *)iph; > + > + if (ip6h->nexthdr != IPPROTO_TCP) { > + DP_NOTICE(p_hwfn, > + "Unexpected ip protocol on ll2 %x\n", > + iph->protocol); > + return -EINVAL; here too > + } > + > for (i = 0; i < 4; i++) { > cm_info->local_ip[i] = > ntohl(ip6h->daddr.in6_u.u6_addr32[i]); ^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [PATCH net 2/2] qed: Fix non TCP packets should be dropped on iWARP ll2 connection 2018-03-14 13:02 ` Joe Perches @ 2018-03-14 13:29 ` Kalderon, Michal 0 siblings, 0 replies; 6+ messages in thread From: Kalderon, Michal @ 2018-03-14 13:29 UTC (permalink / raw) To: Joe Perches, davem@davemloft.net Cc: netdev@vger.kernel.org, dledford@redhat.com, jgg@mellanox.com, linux-rdma@vger.kernel.org, Elior, Ariel > From: Joe Perches [mailto:joe@perches.com] > Sent: Wednesday, March 14, 2018 3:03 PM > To: Kalderon, Michal <Michal.Kalderon@cavium.com>; > davem@davemloft.net > Cc: netdev@vger.kernel.org; dledford@redhat.com; jgg@mellanox.com; > linux-rdma@vger.kernel.org; Elior, Ariel <Ariel.Elior@cavium.com> > Subject: Re: [PATCH net 2/2] qed: Fix non TCP packets should be dropped on > iWARP ll2 connection > > [This sender failed our fraud detection checks and may not be who they > appear to be. Learn about spoofing at http://aka.ms/LearnAboutSpoofing] > > On Wed, 2018-03-14 at 14:49 +0200, Michal Kalderon wrote: > > FW workaround. The iWARP LL2 connection did not expect TCP packets to > > arrive on it's connection. The fix drops any non-tcp packets > [] > > diff --git a/drivers/net/ethernet/qlogic/qed/qed_iwarp.c > > b/drivers/net/ethernet/qlogic/qed/qed_iwarp.c > [] > > @@ -1703,6 +1703,13 @@ qed_iwarp_parse_rx_pkt(struct qed_hwfn > *p_hwfn, > > iph = (struct iphdr *)((u8 *)(ethh) + eth_hlen); > > > > if (eth_type == ETH_P_IP) { > > + if (iph->protocol != IPPROTO_TCP) { > > + DP_NOTICE(p_hwfn, > > + "Unexpected ip protocol on ll2 %x\n", > > + iph->protocol); > > + return -EINVAL; > > + } > > Perhaps this should be ratelimited. The rate of the packets that could arrive here is very low. It has to do with a corner case Of RoCEv2 packets being sent to a device that was enabled with iWARP. > > > + > > cm_info->local_ip[0] = ntohl(iph->daddr); > > cm_info->remote_ip[0] = ntohl(iph->saddr); > > cm_info->ip_version = TCP_IPV4; @@ -1711,6 +1718,14 @@ > > qed_iwarp_parse_rx_pkt(struct qed_hwfn *p_hwfn, > > *payload_len = ntohs(iph->tot_len) - ip_hlen; > > } else if (eth_type == ETH_P_IPV6) { > > ip6h = (struct ipv6hdr *)iph; > > + > > + if (ip6h->nexthdr != IPPROTO_TCP) { > > + DP_NOTICE(p_hwfn, > > + "Unexpected ip protocol on ll2 %x\n", > > + iph->protocol); > > + return -EINVAL; > > here too > > > + } > > + > > for (i = 0; i < 4; i++) { > > cm_info->local_ip[i] = > > ntohl(ip6h->daddr.in6_u.u6_addr32[i]); ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net 0/2] qed: iWARP related fixes 2018-03-14 12:49 [PATCH net 0/2] qed: iWARP related fixes Michal Kalderon 2018-03-14 12:49 ` [PATCH net 1/2] qed: Fix MPA unalign flow in case header is split across two packets Michal Kalderon 2018-03-14 12:49 ` [PATCH net 2/2] qed: Fix non TCP packets should be dropped on iWARP ll2 connection Michal Kalderon @ 2018-03-16 16:14 ` David Miller 2 siblings, 0 replies; 6+ messages in thread From: David Miller @ 2018-03-16 16:14 UTC (permalink / raw) To: Michal.Kalderon; +Cc: netdev, dledford, jgg, linux-rdma, Ariel.Elior From: Michal Kalderon <Michal.Kalderon@cavium.com> Date: Wed, 14 Mar 2018 14:49:26 +0200 > This series contains two fixes related to iWARP flow. Series applied, and queued up for -stable. ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2018-03-16 16:14 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-03-14 12:49 [PATCH net 0/2] qed: iWARP related fixes Michal Kalderon 2018-03-14 12:49 ` [PATCH net 1/2] qed: Fix MPA unalign flow in case header is split across two packets Michal Kalderon 2018-03-14 12:49 ` [PATCH net 2/2] qed: Fix non TCP packets should be dropped on iWARP ll2 connection Michal Kalderon 2018-03-14 13:02 ` Joe Perches 2018-03-14 13:29 ` Kalderon, Michal 2018-03-16 16:14 ` [PATCH net 0/2] qed: iWARP related fixes David Miller
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.