Lines Matching full:sock

101 #include <net/sock.h>
112 #include <trace/events/sock.h>
142 struct socket *sock = f->private_data; in sock_show_fdinfo() local
143 const struct proto_ops *ops = READ_ONCE(sock->ops); in sock_show_fdinfo()
146 ops->show_fdinfo(m, sock); in sock_show_fdinfo()
510 * and file struct implicitly stored in sock->file.
524 * @sock: socket
528 * Returns the &file bound with @sock, implicitly storing it
529 * in sock->file. If dname is %NULL, sets to "".
531 * On failure @sock is released, and an ERR pointer is returned.
536 struct file *sock_alloc_file(struct socket *sock, int flags, const char *dname) in sock_alloc_file() argument
541 dname = sock->sk ? sock->sk->sk_prot_creator->name : ""; in sock_alloc_file()
543 file = alloc_file_pseudo(SOCK_INODE(sock), sock_mnt, dname, in sock_alloc_file()
547 sock_release(sock); in sock_alloc_file()
552 sock->file = file; in sock_alloc_file()
553 file->private_data = sock; in sock_alloc_file()
554 stream_open(SOCK_INODE(sock), file); in sock_alloc_file()
564 static int sock_map_fd(struct socket *sock, int flags) in sock_map_fd() argument
569 sock_release(sock); in sock_map_fd()
573 newfile = sock_alloc_file(sock, flags, NULL); in sock_map_fd()
615 struct socket *sock; in sockfd_lookup() local
623 sock = sock_from_file(file); in sockfd_lookup()
624 if (!sock) { in sockfd_lookup()
628 return sock; in sockfd_lookup()
666 struct socket *sock = SOCKET_I(d_inode(dentry)); in sockfs_setattr() local
668 if (sock->sk) { in sockfs_setattr()
670 WRITE_ONCE(sock->sk->sk_uid, iattr->ia_uid); in sockfs_setattr()
695 struct socket *sock; in sock_alloc() local
701 sock = SOCKET_I(inode); in sock_alloc()
709 return sock; in sock_alloc()
713 static void __sock_release(struct socket *sock, struct inode *inode) in __sock_release() argument
715 const struct proto_ops *ops = READ_ONCE(sock->ops); in __sock_release()
722 ops->release(sock); in __sock_release()
723 sock->sk = NULL; in __sock_release()
726 sock->ops = NULL; in __sock_release()
730 if (sock->wq.fasync_list) in __sock_release()
733 if (!sock->file) { in __sock_release()
734 iput(SOCK_INODE(sock)); in __sock_release()
737 WRITE_ONCE(sock->file, NULL); in __sock_release()
742 * @sock: socket to close
748 void sock_release(struct socket *sock) in sock_release() argument
750 __sock_release(sock, NULL); in sock_release()
779 static noinline void call_trace_sock_send_length(struct sock *sk, int ret, in call_trace_sock_send_length()
785 static inline int sock_sendmsg_nosec(struct socket *sock, struct msghdr *msg) in sock_sendmsg_nosec() argument
787 int ret = INDIRECT_CALL_INET(READ_ONCE(sock->ops)->sendmsg, inet6_sendmsg, in sock_sendmsg_nosec()
788 inet_sendmsg, sock, msg, in sock_sendmsg_nosec()
793 call_trace_sock_send_length(sock->sk, ret, 0); in sock_sendmsg_nosec()
797 static int __sock_sendmsg(struct socket *sock, struct msghdr *msg) in __sock_sendmsg() argument
799 int err = security_socket_sendmsg(sock, msg, in __sock_sendmsg()
802 return err ?: sock_sendmsg_nosec(sock, msg); in __sock_sendmsg()
806 * sock_sendmsg - send a message through @sock
807 * @sock: socket
810 * Sends @msg through @sock, passing through LSM.
813 int sock_sendmsg(struct socket *sock, struct msghdr *msg) in sock_sendmsg() argument
825 ret = __sock_sendmsg(sock, msg); in sock_sendmsg()
834 * kernel_sendmsg - send a message through @sock (kernel-space)
835 * @sock: socket
841 * Builds the message data with @vec and sends it through @sock.
845 int kernel_sendmsg(struct socket *sock, struct msghdr *msg, in kernel_sendmsg() argument
849 return sock_sendmsg(sock, msg); in kernel_sendmsg()
876 static ktime_t get_timestamp(struct sock *sk, struct sk_buff *skb, int *if_index) in get_timestamp()
921 bool skb_has_tx_timestamp(struct sk_buff *skb, const struct sock *sk) in skb_has_tx_timestamp()
938 int skb_get_tx_timestamp(struct sk_buff *skb, struct sock *sk, in skb_get_tx_timestamp()
970 void __sock_recv_timestamp(struct msghdr *msg, struct sock *sk, in __sock_recv_timestamp()
1068 void __sock_recv_wifi_status(struct msghdr *msg, struct sock *sk, in __sock_recv_wifi_status()
1085 static inline void sock_recv_drops(struct msghdr *msg, struct sock *sk, in sock_recv_drops()
1093 static void sock_recv_mark(struct msghdr *msg, struct sock *sk, in sock_recv_mark()
1104 static void sock_recv_priority(struct msghdr *msg, struct sock *sk, in sock_recv_priority()
1114 void __sock_recv_cmsgs(struct msghdr *msg, struct sock *sk, in __sock_recv_cmsgs()
1129 static noinline void call_trace_sock_recv_length(struct sock *sk, int ret, int flags) in call_trace_sock_recv_length()
1134 static inline int sock_recvmsg_nosec(struct socket *sock, struct msghdr *msg, in sock_recvmsg_nosec() argument
1137 int ret = INDIRECT_CALL_INET(READ_ONCE(sock->ops)->recvmsg, in sock_recvmsg_nosec()
1139 inet_recvmsg, sock, msg, in sock_recvmsg_nosec()
1142 call_trace_sock_recv_length(sock->sk, ret, flags); in sock_recvmsg_nosec()
1147 * sock_recvmsg - receive a message from @sock
1148 * @sock: socket
1152 * Receives @msg from @sock, passing through LSM. Returns the total number
1155 int sock_recvmsg(struct socket *sock, struct msghdr *msg, int flags) in sock_recvmsg() argument
1157 int err = security_socket_recvmsg(sock, msg, msg_data_left(msg), flags); in sock_recvmsg()
1159 return err ?: sock_recvmsg_nosec(sock, msg, flags); in sock_recvmsg()
1165 * @sock: The socket to receive the message from
1179 int kernel_recvmsg(struct socket *sock, struct msghdr *msg, in kernel_recvmsg() argument
1184 return sock_recvmsg(sock, msg, flags); in kernel_recvmsg()
1192 struct socket *sock = file->private_data; in sock_splice_read() local
1195 ops = READ_ONCE(sock->ops); in sock_splice_read()
1199 return ops->splice_read(sock, ppos, pipe, len, flags); in sock_splice_read()
1204 struct socket *sock = file->private_data; in sock_splice_eof() local
1207 ops = READ_ONCE(sock->ops); in sock_splice_eof()
1209 ops->splice_eof(sock); in sock_splice_eof()
1215 struct socket *sock = file->private_data; in sock_read_iter() local
1229 res = sock_recvmsg(sock, &msg, msg.msg_flags); in sock_read_iter()
1237 struct socket *sock = file->private_data; in sock_write_iter() local
1248 if (sock->type == SOCK_SEQPACKET) in sock_write_iter()
1254 res = __sock_sendmsg(sock, &msg); in sock_write_iter()
1303 static long sock_do_ioctl(struct net *net, struct socket *sock, in sock_do_ioctl() argument
1306 const struct proto_ops *ops = READ_ONCE(sock->ops); in sock_do_ioctl()
1313 err = ops->ioctl(sock, cmd, arg); in sock_do_ioctl()
1343 struct socket *sock; in sock_ioctl() local
1344 struct sock *sk; in sock_ioctl()
1349 sock = file->private_data; in sock_ioctl()
1350 ops = READ_ONCE(sock->ops); in sock_ioctl()
1351 sk = sock->sk; in sock_ioctl()
1375 err = f_setown(sock->file, pid, 1); in sock_ioctl()
1379 err = put_user(f_getown(sock->file), in sock_ioctl()
1414 err = ops->gettstamp(sock, argp, in sock_ioctl()
1424 err = ops->gettstamp(sock, argp, in sock_ioctl()
1434 err = sock_do_ioctl(net, sock, cmd, arg); in sock_ioctl()
1456 struct socket *sock = NULL; in sock_create_lite() local
1462 sock = sock_alloc(); in sock_create_lite()
1463 if (!sock) { in sock_create_lite()
1468 sock->type = type; in sock_create_lite()
1469 err = security_socket_post_create(sock, family, type, protocol, 1); in sock_create_lite()
1474 *res = sock; in sock_create_lite()
1477 sock_release(sock); in sock_create_lite()
1478 sock = NULL; in sock_create_lite()
1486 struct socket *sock = file->private_data; in sock_poll() local
1487 const struct proto_ops *ops = READ_ONCE(sock->ops); in sock_poll()
1493 if (sk_can_busy_loop(sock->sk)) { in sock_poll()
1496 sk_busy_loop(sock->sk, 1); in sock_poll()
1502 return ops->poll(file, sock, wait) | flag; in sock_poll()
1507 struct socket *sock = file->private_data; in sock_mmap() local
1509 return READ_ONCE(sock->ops)->mmap(file, sock, vma); in sock_mmap()
1531 struct socket *sock = filp->private_data; in sock_fasync() local
1532 struct sock *sk = sock->sk; in sock_fasync()
1533 struct socket_wq *wq = &sock->wq; in sock_fasync()
1597 struct socket *sock; in __sock_create() local
1628 sock = sock_alloc(); in __sock_create()
1629 if (!sock) { in __sock_create()
1635 sock->type = type; in __sock_create()
1664 err = pf->create(net, sock, protocol, kern); in __sock_create()
1666 /* ->create should release the allocated sock->sk object on error in __sock_create()
1667 * and make sure sock->sk is set to NULL to avoid use-after-free in __sock_create()
1669 DEBUG_NET_WARN_ONCE(sock->sk, in __sock_create()
1670 "%ps must clear sock->sk on failure, family: %d, type: %d, protocol: %d\n", in __sock_create()
1679 if (!try_module_get(sock->ops->owner)) in __sock_create()
1687 err = security_socket_post_create(sock, family, type, protocol, kern); in __sock_create()
1690 *res = sock; in __sock_create()
1697 sock->ops = NULL; in __sock_create()
1700 sock_release(sock); in __sock_create()
1746 struct socket *sock; in __sys_socket_create() local
1759 retval = sock_create(family, type, protocol, &sock); in __sys_socket_create()
1763 return sock; in __sys_socket_create()
1768 struct socket *sock; in __sys_socket_file() local
1771 sock = __sys_socket_create(family, type, protocol); in __sys_socket_file()
1772 if (IS_ERR(sock)) in __sys_socket_file()
1773 return ERR_CAST(sock); in __sys_socket_file()
1779 return sock_alloc_file(sock, flags, NULL); in __sys_socket_file()
1803 struct socket *sock; in __sys_socket() local
1806 sock = __sys_socket_create(family, type, in __sys_socket()
1808 if (IS_ERR(sock)) in __sys_socket()
1809 return PTR_ERR(sock); in __sys_socket()
1815 return sock_map_fd(sock, flags & (O_CLOEXEC | O_NONBLOCK)); in __sys_socket()
1925 int __sys_bind_socket(struct socket *sock, struct sockaddr_storage *address, in __sys_bind_socket() argument
1930 err = security_socket_bind(sock, (struct sockaddr *)address, in __sys_bind_socket()
1933 err = READ_ONCE(sock->ops)->bind(sock, in __sys_bind_socket()
1949 struct socket *sock; in __sys_bind() local
1956 sock = sock_from_file(fd_file(f)); in __sys_bind()
1957 if (unlikely(!sock)) in __sys_bind()
1964 return __sys_bind_socket(sock, &address, addrlen); in __sys_bind()
1977 int __sys_listen_socket(struct socket *sock, int backlog) in __sys_listen_socket() argument
1981 somaxconn = READ_ONCE(sock_net(sock->sk)->core.sysctl_somaxconn); in __sys_listen_socket()
1985 err = security_socket_listen(sock, backlog); in __sys_listen_socket()
1987 err = READ_ONCE(sock->ops)->listen(sock, backlog); in __sys_listen_socket()
1994 struct socket *sock; in __sys_listen() local
1998 sock = sock_from_file(fd_file(f)); in __sys_listen()
1999 if (unlikely(!sock)) in __sys_listen()
2002 return __sys_listen_socket(sock, backlog); in __sys_listen()
2014 struct socket *sock, *newsock; in do_accept() local
2020 sock = sock_from_file(file); in do_accept()
2021 if (!sock) in do_accept()
2027 ops = READ_ONCE(sock->ops); in do_accept()
2029 newsock->type = sock->type; in do_accept()
2033 * We don't need try_module_get here, as the listening socket (sock) in do_accept()
2034 * has the protocol module (sock->ops->owner) held. in do_accept()
2038 newfile = sock_alloc_file(newsock, flags, sock->sk->sk_prot_creator->name); in do_accept()
2042 err = security_socket_accept(sock, newsock); in do_accept()
2046 arg->flags |= sock->file->f_flags; in do_accept()
2047 err = ops->accept(sock, newsock, arg); in do_accept()
2134 struct socket *sock; in __sys_connect_file() local
2137 sock = sock_from_file(file); in __sys_connect_file()
2138 if (!sock) { in __sys_connect_file()
2144 security_socket_connect(sock, (struct sockaddr *)address, addrlen); in __sys_connect_file()
2148 err = READ_ONCE(sock->ops)->connect(sock, (struct sockaddr_unsized *)address, in __sys_connect_file()
2149 addrlen, sock->file->f_flags | file_flags); in __sys_connect_file()
2176 int do_getsockname(struct socket *sock, int peer, in do_getsockname() argument
2183 err = security_socket_getpeername(sock); in do_getsockname()
2185 err = security_socket_getsockname(sock); in do_getsockname()
2188 err = READ_ONCE(sock->ops)->getname(sock, (struct sockaddr *)&address, peer); in do_getsockname()
2202 struct socket *sock; in __sys_getsockname() local
2207 sock = sock_from_file(fd_file(f)); in __sys_getsockname()
2208 if (unlikely(!sock)) in __sys_getsockname()
2210 return do_getsockname(sock, peer, usockaddr, usockaddr_len); in __sys_getsockname()
2233 struct socket *sock; in __sys_sendto() local
2245 sock = sock_from_file(fd_file(f)); in __sys_sendto()
2246 if (unlikely(!sock)) in __sys_sendto()
2262 if (sock->file->f_flags & O_NONBLOCK) in __sys_sendto()
2265 return __sock_sendmsg(sock, &msg); in __sys_sendto()
2298 struct socket *sock; in __sys_recvfrom() local
2309 sock = sock_from_file(fd_file(f)); in __sys_recvfrom()
2310 if (unlikely(!sock)) in __sys_recvfrom()
2313 if (sock->file->f_flags & O_NONBLOCK) in __sys_recvfrom()
2315 err = sock_recvmsg(sock, &msg, flags); in __sys_recvfrom()
2343 static bool sock_use_custom_sol_socket(const struct socket *sock) in sock_use_custom_sol_socket() argument
2345 return test_bit(SOCK_CUSTOM_SOCKOPT, &sock->flags); in sock_use_custom_sol_socket()
2348 int do_sock_setsockopt(struct socket *sock, bool compat, int level, in do_sock_setsockopt() argument
2358 err = security_socket_setsockopt(sock, level, optname); in do_sock_setsockopt()
2363 err = BPF_CGROUP_RUN_PROG_SETSOCKOPT(sock->sk, &level, &optname, in do_sock_setsockopt()
2375 ops = READ_ONCE(sock->ops); in do_sock_setsockopt()
2376 if (level == SOL_SOCKET && !sock_use_custom_sol_socket(sock)) in do_sock_setsockopt()
2377 err = sock_setsockopt(sock, level, optname, optval, optlen); in do_sock_setsockopt()
2381 err = ops->setsockopt(sock, level, optname, optval, in do_sock_setsockopt()
2397 struct socket *sock; in __sys_setsockopt() local
2402 sock = sock_from_file(fd_file(f)); in __sys_setsockopt()
2403 if (unlikely(!sock)) in __sys_setsockopt()
2406 return do_sock_setsockopt(sock, compat, level, optname, optval, optlen); in __sys_setsockopt()
2450 int do_sock_getsockopt(struct socket *sock, bool compat, int level, in do_sock_getsockopt() argument
2459 err = security_socket_getsockopt(sock, level, optname); in do_sock_getsockopt()
2466 ops = READ_ONCE(sock->ops); in do_sock_getsockopt()
2468 err = sk_getsockopt(sock->sk, level, optname, optval, optlen); in do_sock_getsockopt()
2474 err = ops->getsockopt_iter(sock, level, optname, &opt); in do_sock_getsockopt()
2487 err = ops->getsockopt(sock, level, optname, optval.user, in do_sock_getsockopt()
2494 err = BPF_CGROUP_RUN_PROG_GETSOCKOPT(sock->sk, level, optname, in do_sock_getsockopt()
2509 struct socket *sock; in __sys_getsockopt() local
2514 sock = sock_from_file(fd_file(f)); in __sys_getsockopt()
2515 if (unlikely(!sock)) in __sys_getsockopt()
2518 return do_sock_getsockopt(sock, in_compat_syscall(), level, optname, in __sys_getsockopt()
2532 int __sys_shutdown_sock(struct socket *sock, int how) in __sys_shutdown_sock() argument
2536 err = security_socket_shutdown(sock, how); in __sys_shutdown_sock()
2538 err = READ_ONCE(sock->ops)->shutdown(sock, how); in __sys_shutdown_sock()
2545 struct socket *sock; in __sys_shutdown() local
2550 sock = sock_from_file(fd_file(f)); in __sys_shutdown()
2551 if (unlikely(!sock)) in __sys_shutdown()
2554 return __sys_shutdown_sock(sock, how); in __sys_shutdown()
2641 static int ____sys_sendmsg(struct socket *sock, struct msghdr *msg_sys, in ____sys_sendmsg() argument
2660 cmsghdr_from_user_compat_to_kern(msg_sys, sock->sk, ctl, in ____sys_sendmsg()
2670 ctl_buf = sock_kmalloc(sock->sk, ctl_len, GFP_KERNEL); in ____sys_sendmsg()
2683 if (sock->file->f_flags & O_NONBLOCK) in ____sys_sendmsg()
2695 err = sock_sendmsg_nosec(sock, msg_sys); in ____sys_sendmsg()
2698 err = __sock_sendmsg(sock, msg_sys); in ____sys_sendmsg()
2712 sock_kfree_s(sock->sk, ctl_buf, ctl_len); in ____sys_sendmsg()
2737 static int ___sys_sendmsg(struct socket *sock, struct user_msghdr __user *msg, in ___sys_sendmsg() argument
2752 err = ____sys_sendmsg(sock, msg_sys, flags, used_address, in ___sys_sendmsg()
2761 long __sys_sendmsg_sock(struct socket *sock, struct msghdr *msg, in __sys_sendmsg_sock() argument
2764 return ____sys_sendmsg(sock, msg, flags, NULL, 0); in __sys_sendmsg_sock()
2771 struct socket *sock; in __sys_sendmsg() local
2780 sock = sock_from_file(fd_file(f)); in __sys_sendmsg()
2781 if (unlikely(!sock)) in __sys_sendmsg()
2784 return ___sys_sendmsg(sock, msg, &msg_sys, flags, NULL, 0); in __sys_sendmsg()
2800 struct socket *sock; in __sys_sendmmsg() local
2819 sock = sock_from_file(fd_file(f)); in __sys_sendmmsg()
2820 if (unlikely(!sock)) in __sys_sendmmsg()
2834 err = ___sys_sendmsg(sock, (struct user_msghdr __user *)compat_entry, in __sys_sendmmsg()
2841 err = ___sys_sendmsg(sock, in __sys_sendmmsg()
2892 static int ____sys_recvmsg(struct socket *sock, struct msghdr *msg_sys, in ____sys_recvmsg() argument
2912 if (sock->file->f_flags & O_NONBLOCK) in ____sys_recvmsg()
2916 err = sock_recvmsg_nosec(sock, msg_sys, flags); in ____sys_recvmsg()
2918 err = sock_recvmsg(sock, msg_sys, flags); in ____sys_recvmsg()
2948 static int ___sys_recvmsg(struct socket *sock, struct user_msghdr __user *msg, in ___sys_recvmsg() argument
2960 err = ____sys_recvmsg(sock, msg_sys, msg, uaddr, flags, nosec); in ___sys_recvmsg()
2969 long __sys_recvmsg_sock(struct socket *sock, struct msghdr *msg, in __sys_recvmsg_sock() argument
2973 return ____sys_recvmsg(sock, msg, umsg, uaddr, flags, 0); in __sys_recvmsg_sock()
2980 struct socket *sock; in __sys_recvmsg() local
2989 sock = sock_from_file(fd_file(f)); in __sys_recvmsg()
2990 if (unlikely(!sock)) in __sys_recvmsg()
2993 return ___sys_recvmsg(sock, msg, &msg_sys, flags, 0); in __sys_recvmsg()
3011 struct socket *sock; in do_recvmmsg() local
3029 sock = sock_from_file(fd_file(f)); in do_recvmmsg()
3030 if (unlikely(!sock)) in do_recvmmsg()
3034 err = sock_error(sock->sk); in do_recvmmsg()
3047 err = ___sys_recvmsg(sock, (struct user_msghdr __user *)compat_entry, in do_recvmmsg()
3055 err = ___sys_recvmsg(sock, in do_recvmmsg()
3100 * sock is non block and there aren't enough datagrams... in do_recvmmsg()
3109 WRITE_ONCE(sock->sk->sk_err, -err); in do_recvmmsg()
3522 static int compat_sock_ioctl_trans(struct file *file, struct socket *sock, in compat_sock_ioctl_trans() argument
3526 struct sock *sk = sock->sk; in compat_sock_ioctl_trans()
3538 ops = READ_ONCE(sock->ops); in compat_sock_ioctl_trans()
3541 return ops->gettstamp(sock, argp, cmd == SIOCGSTAMP_OLD, in compat_sock_ioctl_trans()
3613 return sock_do_ioctl(net, sock, cmd, arg); in compat_sock_ioctl_trans()
3622 struct socket *sock = file->private_data; in compat_sock_ioctl() local
3623 const struct proto_ops *ops = READ_ONCE(sock->ops); in compat_sock_ioctl()
3625 struct sock *sk; in compat_sock_ioctl()
3628 sk = sock->sk; in compat_sock_ioctl()
3632 ret = ops->compat_ioctl(sock, cmd, arg); in compat_sock_ioctl()
3639 ret = compat_sock_ioctl_trans(file, sock, cmd, arg); in compat_sock_ioctl()
3647 * @sock: socket
3654 int kernel_bind(struct socket *sock, struct sockaddr_unsized *addr, int addrlen) in kernel_bind() argument
3660 return READ_ONCE(sock->ops)->bind(sock, (struct sockaddr_unsized *)&address, in kernel_bind()
3667 * @sock: socket
3673 int kernel_listen(struct socket *sock, int backlog) in kernel_listen() argument
3675 return READ_ONCE(sock->ops)->listen(sock, backlog); in kernel_listen()
3681 * @sock: listening socket
3690 int kernel_accept(struct socket *sock, struct socket **newsock, int flags) in kernel_accept() argument
3692 struct sock *sk = sock->sk; in kernel_accept()
3693 const struct proto_ops *ops = READ_ONCE(sock->ops); in kernel_accept()
3705 err = ops->accept(sock, *newsock, &arg); in kernel_accept()
3722 * @sock: socket
3733 int kernel_connect(struct socket *sock, struct sockaddr_unsized *addr, int addrlen, in kernel_connect() argument
3740 return READ_ONCE(sock->ops)->connect(sock, (struct sockaddr_unsized *)&address, in kernel_connect()
3747 * @sock: socket
3754 int kernel_getsockname(struct socket *sock, struct sockaddr *addr) in kernel_getsockname() argument
3756 return READ_ONCE(sock->ops)->getname(sock, addr, 0); in kernel_getsockname()
3762 * @sock: socket
3769 int kernel_getpeername(struct socket *sock, struct sockaddr *addr) in kernel_getpeername() argument
3771 return READ_ONCE(sock->ops)->getname(sock, addr, 1); in kernel_getpeername()
3777 * @sock: socket
3783 int kernel_sock_shutdown(struct socket *sock, enum sock_shutdown_cmd how) in kernel_sock_shutdown() argument
3785 return READ_ONCE(sock->ops)->shutdown(sock, how); in kernel_sock_shutdown()
3799 u32 kernel_sock_ip_overhead(struct sock *sk) in kernel_sock_ip_overhead()