diff --git a/LICENSE b/LICENSE index 827cfd229de6da6c78d184234ac7d6c5e600f4ac..4a7fb367894ca1a5b4fb567e220c41a8725d00fe 100644 --- a/LICENSE +++ b/LICENSE @@ -1,8 +1,7 @@ NewIP - New IP Stack Copyright (c) 2022 Huawei Device Co., Ltd. All rights reserved. -NewIP is dual licensed: you can use it either under the terms of -the GPL V2, or the BSD2 license, at your option. +you can use it under the terms of the GPL V2 and the BSD2 license. a) GNU General Public License version 2, (https://opensource.org/licenses/GPL-2.0) This library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -19,7 +18,7 @@ License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -Alternatively, +And, b) The BSD2 License, (https://opensource.org/licenses/BSD-2-Clause) Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following diff --git a/apply_newip.sh b/apply_newip.sh index d1c564cb4b1c76e959a5ad913036352c8906dd03..4c7e3a9a248ecaf80614fd20965e5e4527c4103a 100644 --- a/apply_newip.sh +++ b/apply_newip.sh @@ -38,7 +38,6 @@ function main() cp -arfL $OHOS_SOURCE_ROOT/foundation/communication/sfc/newip/code/common/*.h net/newip/ cp -arfL $OHOS_SOURCE_ROOT/foundation/communication/sfc/newip/code/common/*.c net/newip/ ln -s -f $KERNEL_BUILD_ROOT/net/newip/nip_addr.h $KERNEL_BUILD_ROOT/include/uapi/linux/nip_addr.h - ln -s -f $KERNEL_BUILD_ROOT/net/newip/nip_addr.h $KERNEL_BUILD_ROOT/include/linux/nip_addr.h cd - } diff --git a/code/linux/include/uapi/linux/newip_route.h b/code/linux/include/uapi/linux/newip_route.h index 8b8e70ebb5c3fe9036ea5fdc15a5c088de0ca9cf..15495b3a9a8292401f7a28051e8059c220abb7e0 100644 --- a/code/linux/include/uapi/linux/newip_route.h +++ b/code/linux/include/uapi/linux/newip_route.h @@ -14,7 +14,7 @@ #ifndef _UAPI_LINUX_NEWIP_ROUTE_H #define _UAPI_LINUX_NEWIP_ROUTE_H -#include +#include "nip_addr.h" struct nip_rtmsg { struct nip_addr rtmsg_dst; diff --git a/code/linux/include/uapi/linux/nip.h b/code/linux/include/uapi/linux/nip.h index 465b229a4ad1443478011e3bc6e831368d6bcf74..477b8069bbb2e14deabf709e0ce3d5fed49dbfb9 100644 --- a/code/linux/include/uapi/linux/nip.h +++ b/code/linux/include/uapi/linux/nip.h @@ -11,7 +11,7 @@ #include #include #include -#include +#include "nip_addr.h" #include struct nip_ifreq { diff --git a/code/linux/net/newip/tcp_nip.c b/code/linux/net/newip/tcp_nip.c index 669a795bbfa9f7db54e863e794304272a21e4512..bb0b79eeebb332dbbf62fffd366f0e5296dc7aa4 100644 --- a/code/linux/net/newip/tcp_nip.c +++ b/code/linux/net/newip/tcp_nip.c @@ -754,6 +754,8 @@ static int tcp_nip_init_sock(struct sock *sk) tp->nip_keepalive_enable = false; tp->idle_ka_probes_out = 0; tp->nip_keepalive_timeout_scale = 0; + tp->last_rcv_nxt = 0; + tp->dup_ack_cnt = 0; tp->reordering = sock_net(sk)->ipv4.sysctl_tcp_reordering; tp->tsoffset = 0; diff --git a/code/linux/net/newip/tcp_nip_input.c b/code/linux/net/newip/tcp_nip_input.c index c8d1d8f7037d81afe90dcdc070d59a011ff27eff..dc9752b88bd76ec88bbdc44de5f2f2385a77fead 100644 --- a/code/linux/net/newip/tcp_nip_input.c +++ b/code/linux/net/newip/tcp_nip_input.c @@ -207,11 +207,17 @@ static void tcp_drop(struct sock *sk, struct sk_buff *skb) __kfree_skb(skb); } +#define PKT_DISCARD_MAX 500 static void tcp_nip_data_queue(struct sock *sk, struct sk_buff *skb) { + int mss = tcp_nip_current_mss(sk); struct tcp_sock *tp = tcp_sk(sk); struct inet_connection_sock *icsk = inet_csk(sk); + /* Newip Urg_ptr is disabled. Urg_ptr is used to carry the number of discarded packets */ + tp->snd_up = (TCP_SKB_CB(skb)->seq - tcp_sk(sk)->rcv_nxt) / mss; + tp->snd_up = tp->snd_up > PKT_DISCARD_MAX ? 0 : tp->snd_up; + if (TCP_SKB_CB(skb)->seq == TCP_SKB_CB(skb)->end_seq) { DEBUG("%s: no data, only handle ack.\n", __func__); __kfree_skb(skb); @@ -336,7 +342,18 @@ static void __tcp_nip_ack_snd_check(struct sock *sk, int ofo_possible) __nip_tcp_select_window(sk) >= tp->rcv_wnd) || /* We have out of order data. */ (ofo_possible && tp->nip_out_of_order_queue)) { - tcp_nip_send_ack(sk); + if (ofo_possible && tp->nip_out_of_order_queue) { + if (tp->rcv_nxt == tp->last_rcv_nxt) { + tp->dup_ack_cnt++; + } else { + tp->dup_ack_cnt = 0; + tp->last_rcv_nxt = tp->rcv_nxt; + } + if (tp->dup_ack_cnt < g_dup_ack_snd_max) + tcp_nip_send_ack(sk); + } else { + tcp_nip_send_ack(sk); + } } else { /* Else, send delayed ack. */ DEBUG("%s: send delayed ack!!", __func__); @@ -945,18 +962,22 @@ static void tcp_nip_ack_retrans(struct sock *sk, u32 ack, int ack_type, u32 retr #define DUP_ACK_RETRANS_START_NUM 3 #define DIVIDEND_UP 3 #define DIVIDEND_DOWN 5 -static void tcp_nip_dup_ack_retrans(struct sock *sk, u32 ack, u32 retrans_num) +static void tcp_nip_dup_ack_retrans(struct sock *sk, const struct sk_buff *skb, + u32 ack, u32 retrans_num) { - struct tcp_sock *tp = tcp_sk(sk); - if (tcp_write_queue_head(sk)) { + struct tcp_sock *tp = tcp_sk(sk); + tp->sacked_out++; if (tp->sacked_out == DUP_ACK_RETRANS_START_NUM) { - int last_nip_ssthresh = tp->nip_ssthresh; - int nip_ssthresh = (tp->nip_ssthresh * DIVIDEND_UP) / DIVIDEND_DOWN; + /* Newip Urg_ptr is disabled. Urg_ptr is used to + * carry the number of discarded packets + */ + int mss = tcp_nip_current_mss(sk); + struct tcphdr *th = (struct tcphdr *)skb->data; + u16 discard_num = htons(th->urg_ptr); + u32 last_nip_ssthresh = tp->nip_ssthresh; - tp->nip_ssthresh = nip_ssthresh < g_ssthresh_low ? - g_ssthresh_low : nip_ssthresh; if (tp->selective_acks[0].end_seq) SSTHRESH_DBG("%s last retans(%u) not end, seq=%u~%u, pkt_out=%u", __func__, tp->ack_retrans_num, @@ -964,15 +985,17 @@ static void tcp_nip_dup_ack_retrans(struct sock *sk, u32 ack, u32 retrans_num) tp->selective_acks[0].end_seq, tp->packets_out); - SSTHRESH_DBG("%s new dup ack, win %u to %u, seq=%u~%u", - __func__, last_nip_ssthresh, tp->nip_ssthresh, - ack, tp->snd_nxt); - tp->selective_acks[0].start_seq = ack; - tp->selective_acks[0].end_seq = tp->snd_nxt; + tp->selective_acks[0].end_seq = ack + discard_num * mss; tp->ack_retrans_seq = ack; tp->ack_retrans_num = 0; + tp->nip_ssthresh = g_ssthresh_low; + SSTHRESH_DBG("%s new dup ack, win %u to %u, discard_num=%u, seq=%u~%u", + __func__, last_nip_ssthresh, tp->nip_ssthresh, discard_num, + tp->selective_acks[0].start_seq, + tp->selective_acks[0].end_seq); + tcp_nip_ack_retrans(sk, ack, DUP_ACK, retrans_num); } } @@ -983,9 +1006,7 @@ static void tcp_nip_nor_ack_retrans(struct sock *sk, u32 ack, u32 retrans_num) struct tcp_sock *tp = tcp_sk(sk); if (tp->selective_acks[0].end_seq != 0) { - if (ack >= tp->selective_acks[0].end_seq || - (ack >= ((tp->selective_acks[0].end_seq - tp->selective_acks[0].start_seq) / - g_retrans_seg_end_divisor) + tp->selective_acks[0].start_seq)) { + if (ack >= tp->selective_acks[0].end_seq) { SSTHRESH_DBG("%s nor ack retrans(%u) resume, seq=%u~%u, pkt_out=%u, ack=%u", __func__, tp->ack_retrans_num, tp->selective_acks[0].start_seq, @@ -1114,8 +1135,8 @@ static int tcp_nip_ack(struct sock *sk, const struct sk_buff *skb, int flag) return 1; } - // ack == tp->snd_una - tcp_nip_dup_ack_retrans(sk, ack, g_dup_ack_retrans_num); + // dup ack: ack == tp->snd_una + tcp_nip_dup_ack_retrans(sk, skb, ack, g_dup_ack_retrans_num); return 1; } diff --git a/code/linux/net/newip/tcp_nip_output.c b/code/linux/net/newip/tcp_nip_output.c index 1687722144c0b18ab1587e7674bb5040c197097f..e5287b61c629e66dea1099a1bc79f96151d2fd04 100644 --- a/code/linux/net/newip/tcp_nip_output.c +++ b/code/linux/net/newip/tcp_nip_output.c @@ -526,8 +526,9 @@ static int __tcp_nip_transmit_skb(struct sock *sk, struct sk_buff *skb, tcb->tcp_flags); *(((__be16 *)th) + TCP_HDR_LEN_OFFSET) = len; - th->check = 0; - th->urg_ptr = 0; + th->check = 0; + /* Newip Urg_ptr is disabled. Urg_ptr is used to carry the number of discarded packets */ + th->urg_ptr = htons(tp->snd_up); /* Write TCP option */ tcp_nip_options_write((__be32 *)(th + 1), tp, &opts); diff --git a/code/linux/net/newip/tcp_nip_parameter.c b/code/linux/net/newip/tcp_nip_parameter.c index 286ac3dad6958d75fd8f68ae1b63952230f40071..ccc64a608e0c9db90c0a367ffc8e183152e95262 100644 --- a/code/linux/net/newip/tcp_nip_parameter.c +++ b/code/linux/net/newip/tcp_nip_parameter.c @@ -88,9 +88,8 @@ module_param_named(dup_ack_retrans_num, g_dup_ack_retrans_num, int, 0644); int g_ack_retrans_num = 5; module_param_named(ack_retrans_num, g_ack_retrans_num, int, 0644); -/* Ack retransmission seg retransmission divisor */ -int g_retrans_seg_end_divisor = 1; -module_param_named(retrans_seg_end_divisor, g_retrans_seg_end_divisor, int, 0644); +int g_dup_ack_snd_max = 6; +module_param_named(dup_ack_snd_max, g_dup_ack_snd_max, int, 0644); /*********************************************************************************************/ /* RTT timestamp parameters */ diff --git a/code/linux/net/newip/tcp_nip_parameter.h b/code/linux/net/newip/tcp_nip_parameter.h index 7467dde6fa742a2f9b972056dc0cc44ada39c2ec..3c7bc1177b475ec523258cd5dfaa8ffa7a7acfaf 100644 --- a/code/linux/net/newip/tcp_nip_parameter.h +++ b/code/linux/net/newip/tcp_nip_parameter.h @@ -58,7 +58,7 @@ do { \ /*********************************************************************************************/ extern int g_dup_ack_retrans_num; extern int g_ack_retrans_num; -extern int g_retrans_seg_end_divisor; +extern int g_dup_ack_snd_max; /*********************************************************************************************/ /* RTT timestamp parameters */ diff --git a/patches/linux-5.10/newip.patch b/patches/linux-5.10/newip.patch index cc39bc42c61e7e6341095195eaf824940d26d569..a3ef784255761af5ff1d044bd0ea931b8ecc24f5 100644 --- a/patches/linux-5.10/newip.patch +++ b/patches/linux-5.10/newip.patch @@ -1,6 +1,6 @@ diff -Naur old/include/linux/netdevice.h new/include/linux/netdevice.h ---- old/include/linux/netdevice.h 2022-07-23 18:52:45.626073631 +0800 -+++ new/include/linux/netdevice.h 2022-07-23 18:52:45.666073630 +0800 +--- old/include/linux/netdevice.h 2022-07-26 16:28:51.526938875 +0800 ++++ new/include/linux/netdevice.h 2022-07-26 16:28:51.536938875 +0800 @@ -2016,6 +2016,9 @@ struct dn_dev __rcu *dn_ptr; #endif @@ -12,8 +12,8 @@ diff -Naur old/include/linux/netdevice.h new/include/linux/netdevice.h void *ax25_ptr; #endif diff -Naur old/include/linux/socket.h new/include/linux/socket.h ---- old/include/linux/socket.h 2022-07-23 18:52:45.636073630 +0800 -+++ new/include/linux/socket.h 2022-07-23 18:52:45.666073630 +0800 +--- old/include/linux/socket.h 2022-07-26 16:28:51.526938875 +0800 ++++ new/include/linux/socket.h 2022-07-26 16:28:51.536938875 +0800 @@ -223,8 +223,8 @@ * reuses AF_INET address family */ @@ -34,8 +34,8 @@ diff -Naur old/include/linux/socket.h new/include/linux/socket.h /* Maximum queue length specifiable by listen. */ diff -Naur old/include/linux/tcp.h new/include/linux/tcp.h ---- old/include/linux/tcp.h 2022-07-23 18:52:45.636073630 +0800 -+++ new/include/linux/tcp.h 2022-07-23 18:52:45.666073630 +0800 +--- old/include/linux/tcp.h 2022-07-26 16:28:51.526938875 +0800 ++++ new/include/linux/tcp.h 2022-07-26 16:28:51.536938875 +0800 @@ -317,6 +317,9 @@ /* OOO segments go in this rbtree. Socket lock must be held. */ @@ -46,7 +46,7 @@ diff -Naur old/include/linux/tcp.h new/include/linux/tcp.h struct sk_buff *ooo_last_skb; /* cache rb_last(out_of_order_queue) */ /* SACKs data, these 2 need to be together (see tcp_options_write) */ -@@ -412,6 +415,17 @@ +@@ -412,6 +415,19 @@ */ struct request_sock __rcu *fastopen_rsk; struct saved_syn *saved_syn; @@ -60,11 +60,13 @@ diff -Naur old/include/linux/tcp.h new/include/linux/tcp.h + bool nip_keepalive_enable; + u32 idle_ka_probes_out; + u32 nip_keepalive_timeout_scale; ++ u32 last_rcv_nxt; ++ u32 dup_ack_cnt; +#endif }; enum tsq_enum { -@@ -423,6 +437,10 @@ +@@ -423,6 +439,10 @@ TCP_MTU_REDUCED_DEFERRED, /* tcp_v{4|6}_err() could not call * tcp_v{4|6}_mtu_reduced() */ @@ -76,8 +78,8 @@ diff -Naur old/include/linux/tcp.h new/include/linux/tcp.h enum tsq_flags { diff -Naur old/include/net/dst.h new/include/net/dst.h ---- old/include/net/dst.h 2022-07-23 18:52:45.636073630 +0800 -+++ new/include/net/dst.h 2022-07-23 18:52:45.676073630 +0800 +--- old/include/net/dst.h 2022-07-26 16:28:51.526938875 +0800 ++++ new/include/net/dst.h 2022-07-26 16:28:51.536938875 +0800 @@ -35,6 +35,8 @@ int (*output)(struct net *net, struct sock *sk, struct sk_buff *skb); @@ -88,8 +90,8 @@ diff -Naur old/include/net/dst.h new/include/net/dst.h #define DST_NOPOLICY 0x0004 #define DST_NOCOUNT 0x0008 diff -Naur old/include/net/inet_hashtables.h new/include/net/inet_hashtables.h ---- old/include/net/inet_hashtables.h 2022-07-23 18:52:45.636073630 +0800 -+++ new/include/net/inet_hashtables.h 2022-07-23 18:52:45.676073630 +0800 +--- old/include/net/inet_hashtables.h 2022-07-26 16:28:51.526938875 +0800 ++++ new/include/net/inet_hashtables.h 2022-07-26 16:28:51.546938875 +0800 @@ -83,6 +83,9 @@ #if IS_ENABLED(CONFIG_IPV6) struct in6_addr fast_v6_rcv_saddr; @@ -115,8 +117,8 @@ diff -Naur old/include/net/inet_hashtables.h new/include/net/inet_hashtables.h { sk->sk_daddr = addr; /* alias of inet_daddr */ diff -Naur old/include/net/inet_sock.h new/include/net/inet_sock.h ---- old/include/net/inet_sock.h 2022-07-23 18:52:45.636073630 +0800 -+++ new/include/net/inet_sock.h 2022-07-23 18:52:45.676073630 +0800 +--- old/include/net/inet_sock.h 2022-07-26 16:28:51.526938875 +0800 ++++ new/include/net/inet_sock.h 2022-07-26 16:28:51.546938875 +0800 @@ -73,6 +73,10 @@ #define ir_rmt_port req.__req_common.skc_dport #define ir_v6_rmt_addr req.__req_common.skc_v6_daddr @@ -142,8 +144,8 @@ diff -Naur old/include/net/inet_sock.h new/include/net/inet_sock.h }; diff -Naur old/include/net/neighbour.h new/include/net/neighbour.h ---- old/include/net/neighbour.h 2022-07-23 18:52:45.636073630 +0800 -+++ new/include/net/neighbour.h 2022-07-23 18:52:45.676073630 +0800 +--- old/include/net/neighbour.h 2022-07-26 16:28:51.526938875 +0800 ++++ new/include/net/neighbour.h 2022-07-26 16:28:51.546938875 +0800 @@ -232,6 +232,9 @@ NEIGH_ARP_TABLE = 0, NEIGH_ND_TABLE = 1, @@ -155,8 +157,8 @@ diff -Naur old/include/net/neighbour.h new/include/net/neighbour.h NEIGH_LINK_TABLE = NEIGH_NR_TABLES /* Pseudo table for neigh_xmit */ }; diff -Naur old/include/net/net_namespace.h new/include/net/net_namespace.h ---- old/include/net/net_namespace.h 2022-07-23 18:52:45.636073630 +0800 -+++ new/include/net/net_namespace.h 2022-07-23 18:52:45.676073630 +0800 +--- old/include/net/net_namespace.h 2022-07-26 16:28:51.526938875 +0800 ++++ new/include/net/net_namespace.h 2022-07-26 16:28:51.546938875 +0800 @@ -38,6 +38,9 @@ #include #include @@ -178,8 +180,8 @@ diff -Naur old/include/net/net_namespace.h new/include/net/net_namespace.h struct netns_ieee802154_lowpan ieee802154_lowpan; #endif diff -Naur old/include/net/secure_seq.h new/include/net/secure_seq.h ---- old/include/net/secure_seq.h 2022-07-23 18:52:45.636073630 +0800 -+++ new/include/net/secure_seq.h 2022-07-23 18:52:45.676073630 +0800 +--- old/include/net/secure_seq.h 2022-07-26 16:28:51.526938875 +0800 ++++ new/include/net/secure_seq.h 2022-07-26 16:28:51.546938875 +0800 @@ -19,4 +19,11 @@ u64 secure_dccpv6_sequence_number(__be32 *saddr, __be32 *daddr, __be16 sport, __be16 dport); @@ -193,14 +195,14 @@ diff -Naur old/include/net/secure_seq.h new/include/net/secure_seq.h +#endif #endif /* _NET_SECURE_SEQ */ diff -Naur old/include/net/sock.h new/include/net/sock.h ---- old/include/net/sock.h 2022-07-23 18:52:45.646073630 +0800 -+++ new/include/net/sock.h 2022-07-23 18:52:45.676073630 +0800 +--- old/include/net/sock.h 2022-07-26 16:28:51.526938875 +0800 ++++ new/include/net/sock.h 2022-07-26 16:28:51.546938875 +0800 @@ -68,6 +68,9 @@ #include #include #include +#ifdef CONFIG_NEWIP -+#include ++#include +#endif /* @@ -227,8 +229,8 @@ diff -Naur old/include/net/sock.h new/include/net/sock.h #define sk_incoming_cpu __sk_common.skc_incoming_cpu #define sk_flags __sk_common.skc_flags diff -Naur old/include/net/tcp.h new/include/net/tcp.h ---- old/include/net/tcp.h 2022-07-23 18:52:45.646073630 +0800 -+++ new/include/net/tcp.h 2022-07-23 18:52:45.676073630 +0800 +--- old/include/net/tcp.h 2022-07-26 16:28:51.526938875 +0800 ++++ new/include/net/tcp.h 2022-07-26 16:28:51.546938875 +0800 @@ -40,7 +40,9 @@ #include #include @@ -251,8 +253,8 @@ diff -Naur old/include/net/tcp.h new/include/net/tcp.h struct { __u32 flags; diff -Naur old/include/uapi/linux/if_ether.h new/include/uapi/linux/if_ether.h ---- old/include/uapi/linux/if_ether.h 2022-07-23 18:52:45.646073630 +0800 -+++ new/include/uapi/linux/if_ether.h 2022-07-23 18:52:45.676073630 +0800 +--- old/include/uapi/linux/if_ether.h 2022-07-26 16:28:51.526938875 +0800 ++++ new/include/uapi/linux/if_ether.h 2022-07-26 16:28:51.546938875 +0800 @@ -72,6 +72,7 @@ #define ETH_P_ERSPAN 0x88BE /* ERSPAN type II */ #define ETH_P_IPX 0x8137 /* IPX over DIX */ @@ -262,8 +264,8 @@ diff -Naur old/include/uapi/linux/if_ether.h new/include/uapi/linux/if_ether.h #define ETH_P_SLOW 0x8809 /* Slow Protocol. See 802.3ad 43B */ #define ETH_P_WCCP 0x883E /* Web-cache coordination protocol diff -Naur old/net/Kconfig new/net/Kconfig ---- old/net/Kconfig 2022-07-23 18:52:45.656073630 +0800 -+++ new/net/Kconfig 2022-07-23 18:52:45.676073630 +0800 +--- old/net/Kconfig 2022-07-26 16:28:51.526938875 +0800 ++++ new/net/Kconfig 2022-07-26 16:28:51.546938875 +0800 @@ -93,6 +93,7 @@ if INET source "net/ipv4/Kconfig" @@ -273,8 +275,8 @@ diff -Naur old/net/Kconfig new/net/Kconfig source "net/mptcp/Kconfig" diff -Naur old/net/Makefile new/net/Makefile ---- old/net/Makefile 2022-07-23 18:52:45.656073630 +0800 -+++ new/net/Makefile 2022-07-23 18:52:45.676073630 +0800 +--- old/net/Makefile 2022-07-26 16:28:51.526938875 +0800 ++++ new/net/Makefile 2022-07-26 16:28:51.556938875 +0800 @@ -20,6 +20,7 @@ obj-$(CONFIG_XFRM) += xfrm/ obj-$(CONFIG_UNIX_SCM) += unix/ @@ -284,8 +286,8 @@ diff -Naur old/net/Makefile new/net/Makefile obj-$(CONFIG_PACKET) += packet/ obj-$(CONFIG_NET_KEY) += key/ diff -Naur old/net/core/neighbour.c new/net/core/neighbour.c ---- old/net/core/neighbour.c 2022-07-23 18:52:45.646073630 +0800 -+++ new/net/core/neighbour.c 2022-07-23 18:52:45.676073630 +0800 +--- old/net/core/neighbour.c 2022-07-26 16:28:51.526938875 +0800 ++++ new/net/core/neighbour.c 2022-07-26 16:28:51.546938875 +0800 @@ -1779,6 +1779,11 @@ case AF_DECnet: tbl = neigh_tables[NEIGH_DN_TABLE]; @@ -299,8 +301,8 @@ diff -Naur old/net/core/neighbour.c new/net/core/neighbour.c return tbl; diff -Naur old/net/core/secure_seq.c new/net/core/secure_seq.c ---- old/net/core/secure_seq.c 2022-07-23 18:52:45.646073630 +0800 -+++ new/net/core/secure_seq.c 2022-07-23 18:52:45.676073630 +0800 +--- old/net/core/secure_seq.c 2022-07-26 16:28:51.526938875 +0800 ++++ new/net/core/secure_seq.c 2022-07-26 16:28:51.546938875 +0800 @@ -151,6 +151,51 @@ EXPORT_SYMBOL_GPL(secure_ipv4_port_ephemeral); #endif @@ -354,8 +356,8 @@ diff -Naur old/net/core/secure_seq.c new/net/core/secure_seq.c u64 secure_dccp_sequence_number(__be32 saddr, __be32 daddr, __be16 sport, __be16 dport) diff -Naur old/net/ipv4/inet_connection_sock.c new/net/ipv4/inet_connection_sock.c ---- old/net/ipv4/inet_connection_sock.c 2022-07-23 18:52:45.646073630 +0800 -+++ new/net/ipv4/inet_connection_sock.c 2022-07-23 18:52:45.676073630 +0800 +--- old/net/ipv4/inet_connection_sock.c 2022-07-26 16:28:51.526938875 +0800 ++++ new/net/ipv4/inet_connection_sock.c 2022-07-26 16:28:51.546938875 +0800 @@ -22,7 +22,34 @@ #include #include @@ -443,8 +445,8 @@ diff -Naur old/net/ipv4/inet_connection_sock.c new/net/ipv4/inet_connection_sock } else { tb->fastreuseport = 0; diff -Naur old/net/ipv4/inet_hashtables.c new/net/ipv4/inet_hashtables.c ---- old/net/ipv4/inet_hashtables.c 2022-07-23 18:52:45.656073630 +0800 -+++ new/net/ipv4/inet_hashtables.c 2022-07-23 18:52:45.676073630 +0800 +--- old/net/ipv4/inet_hashtables.c 2022-07-26 16:28:51.526938875 +0800 ++++ new/net/ipv4/inet_hashtables.c 2022-07-26 16:28:51.546938875 +0800 @@ -52,6 +52,15 @@ &sk->sk_v6_rcv_saddr, sk->sk_num, &sk->sk_v6_daddr, sk->sk_dport); @@ -462,8 +464,8 @@ diff -Naur old/net/ipv4/inet_hashtables.c new/net/ipv4/inet_hashtables.c sk->sk_rcv_saddr, sk->sk_num, sk->sk_daddr, sk->sk_dport); diff -Naur old/security/selinux/hooks.c new/security/selinux/hooks.c ---- old/security/selinux/hooks.c 2022-07-23 18:52:45.656073630 +0800 -+++ new/security/selinux/hooks.c 2022-07-23 18:52:45.676073630 +0800 +--- old/security/selinux/hooks.c 2022-07-26 16:28:51.526938875 +0800 ++++ new/security/selinux/hooks.c 2022-07-26 16:28:51.556938875 +0800 @@ -1271,7 +1271,7 @@ return SECCLASS_SMC_SOCKET; case PF_XDP: @@ -474,8 +476,8 @@ diff -Naur old/security/selinux/hooks.c new/security/selinux/hooks.c #endif } diff -Naur old/security/selinux/include/classmap.h new/security/selinux/include/classmap.h ---- old/security/selinux/include/classmap.h 2022-07-23 18:52:45.656073630 +0800 -+++ new/security/selinux/include/classmap.h 2022-07-23 18:52:45.676073630 +0800 +--- old/security/selinux/include/classmap.h 2022-07-26 16:28:51.536938875 +0800 ++++ new/security/selinux/include/classmap.h 2022-07-26 16:28:51.556938875 +0800 @@ -253,6 +253,6 @@ { NULL } };