diff --git a/newip/third_party/linux-5.10/net/newip/icmp.c b/newip/third_party/linux-5.10/net/newip/icmp.c index 39b1aa7d6b18ec36390ddd428625c7342c180b60..013e0555a4a0f61d950d2fff730ce965c902c1c7 100644 --- a/newip/third_party/linux-5.10/net/newip/icmp.c +++ b/newip/third_party/linux-5.10/net/newip/icmp.c @@ -67,7 +67,20 @@ int nip_icmp_rcv(struct sk_buff *skb) return ret; } +static void nip_icmp_early_demux(struct sk_buff *skb) +{ +} + +static void nip_icmp_err_handler(struct sk_buff *skb, + struct ninet_skb_parm *opt, + u8 type, u8 code, + int offset, __be32 info) +{ +} + static const struct ninet_protocol nip_icmp_protocol = { + .early_demux = nip_icmp_early_demux, + .err_handler = nip_icmp_err_handler, .handler = nip_icmp_rcv, .flags = 0, }; diff --git a/newip/third_party/linux-5.10/net/newip/nndisc.c b/newip/third_party/linux-5.10/net/newip/nndisc.c index e9a93a4b2570f6c2d4f1d10dd0996cadd81fd1ca..79c7fc871dbbac0c1b425368af5362d16e9e431e 100644 --- a/newip/third_party/linux-5.10/net/newip/nndisc.c +++ b/newip/third_party/linux-5.10/net/newip/nndisc.c @@ -87,11 +87,16 @@ static void nndisc_error_report(struct neighbour *neigh, struct sk_buff *skb) kfree_skb(skb); } +static void nndisc_generic_error_report(struct neighbour *neigh, struct sk_buff *skb) +{ +} + static const struct neigh_ops nndisc_generic_ops = { .family = AF_NINET, .solicit = nndisc_solicit, .output = neigh_resolve_output, .connected_output = neigh_connected_output, + .error_report = nndisc_generic_error_report, }; static const struct neigh_ops nndisc_hh_ops = { @@ -121,6 +126,15 @@ static const struct neigh_ops nndisc_direct_ops = { #define NIP_NEIGH_GC_THRESH_2 512 #define NIP_NEIGH_GC_THRESH_3 1024 +static void nndisc_proxy_redo(struct sk_buff *skb) +{ +} + +static int nndisc_is_multicast(const void *pkey) +{ + return -EINVAL; +} + struct neigh_table nnd_tbl = { .family = AF_NINET, .key_len = sizeof(struct nip_addr), @@ -128,6 +142,8 @@ struct neigh_table nnd_tbl = { .hash = nndisc_hash, .key_eq = nndisc_key_eq, .constructor = nndisc_constructor, + .proxy_redo = nndisc_proxy_redo, + .is_multicast = nndisc_is_multicast, .id = "nndisc_cache", .parms = { .tbl = &nnd_tbl, diff --git a/newip/third_party/linux-5.10/net/newip/tcp_nip.c b/newip/third_party/linux-5.10/net/newip/tcp_nip.c index 9aef6c743b4e83781ca4b938fdb56c3b3bdbc43e..47ff3c7525add7ccc56270731c94176828956556 100644 --- a/newip/third_party/linux-5.10/net/newip/tcp_nip.c +++ b/newip/third_party/linux-5.10/net/newip/tcp_nip.c @@ -797,29 +797,67 @@ static void tcp_nip_reqsk_destructor(struct request_sock *req) ; } +static void tcp_nip_reqsk_send_ack(const struct sock *sk, struct sk_buff *skb, + struct request_sock *req) +{ +} + +static void tcp_nip_reqsk_send_reset(const struct sock *sk, struct sk_buff *skb) +{ +} + +static void tcp_nip_reqsk_syn_ack_timeout(const struct request_sock *req) +{ +} + struct request_sock_ops tcp_nip_request_sock_ops __read_mostly = { - .family = AF_NINET, - .obj_size = sizeof(struct tcp_nip_request_sock), - .rtx_syn_ack = tcp_nip_rtx_synack, - .send_ack = NULL, - .destructor = tcp_nip_reqsk_destructor, - .send_reset = NULL, - .syn_ack_timeout = NULL, + .family = AF_NINET, + .obj_size = sizeof(struct tcp_nip_request_sock), + .rtx_syn_ack = tcp_nip_rtx_synack, + .send_ack = tcp_nip_reqsk_send_ack, + .destructor = tcp_nip_reqsk_destructor, + .send_reset = tcp_nip_reqsk_send_reset, + .syn_ack_timeout = tcp_nip_reqsk_syn_ack_timeout, }; +static int nip_calc_md5_hash(char *location, const struct tcp_md5sig_key *md5, + const struct sock *sk, const struct sk_buff *skb) +{ + return -EINVAL; +} + +static struct tcp_md5sig_key *nip_req_md5_lookup(const struct sock *sk, + const struct sock *addr_sk) +{ + return NULL; +} + +#ifdef CONFIG_SYN_COOKIES +static __u32 nip_cookie_init_seq(const struct sk_buff *skb, __u16 *mss) +{ + return 0; +} +#endif + +static u32 tcp_nip_init_ts_off(const struct net *net, const struct sk_buff *skb) +{ + return 0; +} + static const struct tcp_request_sock_ops tcp_request_sock_newip_ops = { .mss_clamp = TCP_BASE_MSS, #ifdef CONFIG_TCP_MD5SIG - .req_md5_lookup = NULL, - .calc_md5_hash = NULL, + .req_md5_lookup = nip_req_md5_lookup, + .calc_md5_hash = nip_calc_md5_hash, #endif .init_req = tcp_nip_init_req, #ifdef CONFIG_SYN_COOKIES - .cookie_init_seq = NULL, + .cookie_init_seq = nip_cookie_init_seq, #endif .route_req = tcp_nip_route_req, .init_seq = tcp_nip_init_sequence, .send_synack = tcp_nip_send_synack, + .init_ts_off = tcp_nip_init_ts_off, }; /* Function @@ -945,21 +983,37 @@ put_and_exit: goto out; } +static void tcp_nip__send_check(struct sock *sk, struct sk_buff *skb) +{ +} + +static int tcp_nip_rebuild_header(struct sock *sk) +{ + return -EINVAL; +} + +static void nip_addr2sockaddr(struct sock *sk, struct sockaddr *addr) +{ +} + +static void nip_mtu_reduced(struct sock *sk) +{ +} + static const struct inet_connection_sock_af_ops newip_specific = { - .queue_xmit = tcp_nip_queue_xmit, - .send_check = NULL, - .rebuild_header = NULL, - .sk_rx_dst_set = ninet_sk_rx_dst_set, - .conn_request = tcp_nip_conn_request, - .syn_recv_sock = tcp_nip_syn_recv_sock, - .net_header_len = 0, - .net_frag_header_len = 0, - .setsockopt = nip_setsockopt, - .getsockopt = nip_getsockopt, - .addr2sockaddr = NULL, - .sockaddr_len = sizeof(struct sockaddr_nin), - - .mtu_reduced = NULL, + .queue_xmit = tcp_nip_queue_xmit, + .send_check = tcp_nip__send_check, + .rebuild_header = tcp_nip_rebuild_header, + .sk_rx_dst_set = ninet_sk_rx_dst_set, + .conn_request = tcp_nip_conn_request, + .syn_recv_sock = tcp_nip_syn_recv_sock, + .net_header_len = 0, + .net_frag_header_len = 0, + .setsockopt = nip_setsockopt, + .getsockopt = nip_getsockopt, + .addr2sockaddr = nip_addr2sockaddr, + .sockaddr_len = sizeof(struct sockaddr_nin), + .mtu_reduced = nip_mtu_reduced, }; #if IS_ENABLED(CONFIG_NEWIP_FAST_KEEPALIVE) @@ -1145,6 +1199,132 @@ static void tcp_sock_priv_init(struct sock *sk) _tcp_sock_priv_init(sk); } +static void nip_icsk_ca_init(struct sock *sk) +{ +} + +static void nip_icsk_ca_release(struct sock *sk) +{ +} + +static u32 nip_icsk_ca_ssthresh(struct sock *sk) +{ + return 0; +} + +static void nip_icsk_ca_cong_avoid(struct sock *sk, u32 ack, u32 acked) +{ +} + +static void nip_icsk_ca_set_state(struct sock *sk, u8 new_state) +{ +} + +static void nip_icsk_ca_cwnd_event(struct sock *sk, enum tcp_ca_event ev) +{ +} + +static void nip_icsk_ca_in_ack_event(struct sock *sk, u32 flags) +{ +} + +static u32 nip_icsk_ca_undo_cwnd(struct sock *sk) +{ + return 0; +} + +static void nip_icsk_ca_pkts_acked(struct sock *sk, const struct ack_sample *sample) +{ +} + +static u32 nip_icsk_ca_min_tso_segs(struct sock *sk) +{ + return 0; +} + +static u32 nip_icsk_ca_sndbuf_expand(struct sock *sk) +{ + return 0; +} + +static void nip_icsk_ca_cong_control(struct sock *sk, const struct rate_sample *rs) +{ +} + +static size_t nip_icsk_ca_get_info(struct sock *sk, u32 ext, int *attr, + union tcp_cc_info *info) +{ + return 0; +} + +static int nip_icsk_ulp_init(struct sock *sk) +{ + return -EINVAL; +} + +static void nip_icsk_ulp_update(struct sock *sk, struct proto *p, + void (*write_space)(struct sock *sk)) +{ +} + +static void nip_icsk_ulp_release(struct sock *sk) +{ +} + +static int nip_icsk_ulp_get_info(const struct sock *sk, struct sk_buff *skb) +{ + return -EINVAL; +} + +static size_t nip_icsk_ulp_get_info_size(const struct sock *sk) +{ + return 0; +} + +static void nip_icsk_ulp_clone(const struct request_sock *req, struct sock *newsk, + const gfp_t priority) +{ +} + +static struct module nip_owner; + +struct tcp_ulp_ops nip_icsk_ulp_ops = { + .init = nip_icsk_ulp_init, + .update = nip_icsk_ulp_update, + .release = nip_icsk_ulp_release, + .get_info = nip_icsk_ulp_get_info, + .get_info_size = nip_icsk_ulp_get_info_size, + .clone = nip_icsk_ulp_clone, + .owner = &nip_owner, +}; + +struct tcp_congestion_ops nip_icsk_ca_ops = { + .init = nip_icsk_ca_init, + .release = nip_icsk_ca_release, + .ssthresh = nip_icsk_ca_ssthresh, + .cong_avoid = nip_icsk_ca_cong_avoid, + .set_state = nip_icsk_ca_set_state, + .cwnd_event = nip_icsk_ca_cwnd_event, + .in_ack_event = nip_icsk_ca_in_ack_event, + .undo_cwnd = nip_icsk_ca_undo_cwnd, + .pkts_acked = nip_icsk_ca_pkts_acked, + .min_tso_segs = nip_icsk_ca_min_tso_segs, + .sndbuf_expand = nip_icsk_ca_sndbuf_expand, + .cong_control = nip_icsk_ca_cong_control, + .get_info = nip_icsk_ca_get_info, +}; + +static void nip_icsk_clean_acked(struct sock *sk, u32 acked_seq) +{ +} + +static void inet_connection_sock_pre_init(struct inet_connection_sock *icsk) +{ + icsk->icsk_ca_ops = &nip_icsk_ca_ops; + icsk->icsk_ulp_ops = &nip_icsk_ulp_ops; + icsk->icsk_clean_acked = nip_icsk_clean_acked; +} + /* Function * Example Initialize sock information in TCP * Parameter @@ -1163,6 +1343,7 @@ static int tcp_nip_init_sock(struct sock *sk) tcp_nip_init_xmit_timers(sk); INIT_LIST_HEAD(&tp->tsq_node); + inet_connection_sock_pre_init(icsk); icsk->icsk_rto = get_nip_rto() == 0 ? TCP_TIMEOUT_INIT : (HZ / get_nip_rto()); icsk->icsk_rto_min = TCP_RTO_MIN; icsk->icsk_delack_max = TCP_DELACK_MAX; @@ -2026,10 +2207,22 @@ struct sock *ninet_csk_accept(struct sock *sk, int flags, int *err, bool kern) return newsk; } +static int tcp_nip_sendpage(struct sock *sk, struct page *page, int offset, size_t size, + int flags) +{ + return -EINVAL; +} + +static int tcp_nip_pre_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len) +{ + return -EINVAL; +} + struct proto tcp_nip_prot = { .name = "NIP_TCP", .owner = THIS_MODULE, .close = tcp_nip_close, + .pre_connect = tcp_nip_pre_connect, .connect = tcp_nip_connect, .disconnect = tcp_nip_disconnect, .accept = ninet_csk_accept, @@ -2042,7 +2235,7 @@ struct proto tcp_nip_prot = { .keepalive = tcp_set_keepalive, .recvmsg = tcp_nip_recvmsg, .sendmsg = tcp_nip_sendmsg, - .sendpage = NULL, + .sendpage = tcp_nip_sendpage, .backlog_rcv = tcp_nip_do_rcv, .release_cb = tcp_nip_release_cb, .hash = ninet_hash, @@ -2062,10 +2255,17 @@ struct proto tcp_nip_prot = { .no_autobind = true, }; +static void tcp_nip_err_handler(struct sk_buff *skb, + struct ninet_skb_parm *opt, + u8 type, u8 code, int offset, __be32 info) +{ +} + static const struct ninet_protocol tcp_nip_protocol = { - .early_demux = tcp_nip_early_demux, - .handler = tcp_nip_rcv, - .flags = 0, + .early_demux = tcp_nip_early_demux, + .handler = tcp_nip_rcv, + .err_handler = tcp_nip_err_handler, + .flags = 0, }; static struct inet_protosw tcp_nip_protosw = { diff --git a/newip/third_party/linux-5.10/net/newip/udp.c b/newip/third_party/linux-5.10/net/newip/udp.c index 366c21158489e01d99aebb035a1ba008c9fc5b16..7add3ad3ef753a1e821432055bc5dd7da5d01864 100644 --- a/newip/third_party/linux-5.10/net/newip/udp.c +++ b/newip/third_party/linux-5.10/net/newip/udp.c @@ -496,34 +496,68 @@ int nip_udp_getsockopt(struct sock *sk, int level, return nip_getsockopt(sk, level, optname, optval, optlen); } +int nip_udp_datagram_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len) +{ + return -EINVAL; +} + +int nip_udp_pre_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len) +{ + return -EINVAL; +} + +int nip_udp_sendpage(struct sock *sk, struct page *page, int offset, + size_t size, int flags) +{ + return -EINVAL; +} + +void nip_udp_datagram_release_cb(struct sock *sk) +{ +} + +void udp_nip_rehash(struct sock *sk) +{ +} + +void nip_udp_early_demux(struct sk_buff *skb) +{ +} + static const struct ninet_protocol nip_udp_protocol = { - .handler = nip_udp_input, - .err_handler = nip_udp_err, - .flags = 0, + .handler = nip_udp_input, + .err_handler = nip_udp_err, + .early_demux = nip_udp_early_demux, + .flags = 0, }; /* Newip Udp related operations */ struct proto nip_udp_prot = { - .name = "nip_udp", - .owner = THIS_MODULE, - .close = udp_lib_close, - .disconnect = udp_disconnect, - .ioctl = udp_ioctl, - .init = udp_init_sock, - .destroy = nip_udp_destroy_sock, - .setsockopt = nip_udp_setsockopt, - .getsockopt = nip_udp_getsockopt, - .sendmsg = nip_udp_output, - .recvmsg = nip_udp_recvmsg, - .backlog_rcv = __nip_udp_queue_rcv_skb, - .hash = udp_lib_hash, - .unhash = udp_lib_unhash, - .get_port = nip_udp_get_port, - .memory_allocated = &udp_memory_allocated, - .sysctl_mem = sysctl_udp_mem, - .obj_size = sizeof(struct nip_udp_sock), - .h.udp_table = &udp_table, - .diag_destroy = udp_abort, + .name = "nip_udp", + .owner = THIS_MODULE, + .close = udp_lib_close, + .pre_connect = nip_udp_pre_connect, + .connect = nip_udp_datagram_connect, + .disconnect = udp_disconnect, + .ioctl = udp_ioctl, + .init = udp_init_sock, + .destroy = nip_udp_destroy_sock, + .setsockopt = nip_udp_setsockopt, + .getsockopt = nip_udp_getsockopt, + .sendmsg = nip_udp_output, + .recvmsg = nip_udp_recvmsg, + .sendpage = nip_udp_sendpage, + .release_cb = nip_udp_datagram_release_cb, + .backlog_rcv = __nip_udp_queue_rcv_skb, + .hash = udp_lib_hash, + .unhash = udp_lib_unhash, + .rehash = udp_nip_rehash, + .get_port = nip_udp_get_port, + .memory_allocated = &udp_memory_allocated, + .sysctl_mem = sysctl_udp_mem, + .obj_size = sizeof(struct nip_udp_sock), + .h.udp_table = &udp_table, + .diag_destroy = udp_abort, }; /* Example Create newip socket information */