68 lines
2.1 KiB
Diff
68 lines
2.1 KiB
Diff
--- sys/dev/mlx5/mlx5_en/mlx5_en_tx.c.orig
|
|
+++ sys/dev/mlx5/mlx5_en/mlx5_en_tx.c
|
|
@@ -609,7 +609,8 @@
|
|
struct mlx5e_sq *sq;
|
|
int ret;
|
|
|
|
- if (mb->m_pkthdr.snd_tag != NULL) {
|
|
+ if ((mb->m_pkthdr.csum_flags & CSUM_SND_TAG) != 0 &&
|
|
+ (mb->m_pkthdr.snd_tag != NULL)) {
|
|
sq = mlx5e_select_queue_by_send_tag(ifp, mb);
|
|
if (unlikely(sq == NULL)) {
|
|
/* Check for route change */
|
|
--- sys/netinet/ip_output.c.orig
|
|
+++ sys/netinet/ip_output.c
|
|
@@ -653,6 +653,7 @@
|
|
in_pcboutput_txrtlmt(inp, ifp, m);
|
|
/* stamp send tag on mbuf */
|
|
m->m_pkthdr.snd_tag = inp->inp_snd_tag;
|
|
+ m->m_pkthdr.csum_flags |= CSUM_SND_TAG;
|
|
} else {
|
|
m->m_pkthdr.snd_tag = NULL;
|
|
}
|
|
@@ -705,6 +706,7 @@
|
|
in_pcboutput_txrtlmt(inp, ifp, m);
|
|
/* stamp send tag on mbuf */
|
|
m->m_pkthdr.snd_tag = inp->inp_snd_tag;
|
|
+ m->m_pkthdr.csum_flags |= CSUM_SND_TAG;
|
|
} else {
|
|
m->m_pkthdr.snd_tag = NULL;
|
|
}
|
|
--- sys/netinet6/ip6_output.c.orig
|
|
+++ sys/netinet6/ip6_output.c
|
|
@@ -966,6 +966,7 @@
|
|
in_pcboutput_txrtlmt(inp, ifp, m);
|
|
/* stamp send tag on mbuf */
|
|
m->m_pkthdr.snd_tag = inp->inp_snd_tag;
|
|
+ m->m_pkthdr.csum_flags |= CSUM_SND_TAG;
|
|
} else {
|
|
m->m_pkthdr.snd_tag = NULL;
|
|
}
|
|
@@ -1081,6 +1082,7 @@
|
|
in_pcboutput_txrtlmt(inp, ifp, m);
|
|
/* stamp send tag on mbuf */
|
|
m->m_pkthdr.snd_tag = inp->inp_snd_tag;
|
|
+ m->m_pkthdr.csum_flags |= CSUM_SND_TAG;
|
|
} else {
|
|
m->m_pkthdr.snd_tag = NULL;
|
|
}
|
|
--- sys/sys/mbuf.h.orig
|
|
+++ sys/sys/mbuf.h
|
|
@@ -519,6 +519,8 @@
|
|
#define CSUM_L5_VALID 0x20000000 /* checksum is correct */
|
|
#define CSUM_COALESCED 0x40000000 /* contains merged segments */
|
|
|
|
+#define CSUM_SND_TAG 0x80000000 /* Packet header has send tag */
|
|
+
|
|
/*
|
|
* CSUM flag description for use with printf(9) %b identifier.
|
|
*/
|
|
@@ -528,7 +530,7 @@
|
|
"\12CSUM_IP6_UDP\13CSUM_IP6_TCP\14CSUM_IP6_SCTP\15CSUM_IP6_TSO" \
|
|
"\16CSUM_IP6_ISCSI" \
|
|
"\31CSUM_L3_CALC\32CSUM_L3_VALID\33CSUM_L4_CALC\34CSUM_L4_VALID" \
|
|
- "\35CSUM_L5_CALC\36CSUM_L5_VALID\37CSUM_COALESCED"
|
|
+ "\35CSUM_L5_CALC\36CSUM_L5_VALID\37CSUM_COALESCED\40CSUM_SND_TAG"
|
|
|
|
/* CSUM flags compatibility mappings. */
|
|
#define CSUM_IP_CHECKED CSUM_L3_CALC
|