cregit-Linux how code gets into the kernel

Release 4.7 include/linux/udp.h

Directory: include/linux
/*
 * INET         An implementation of the TCP/IP protocol suite for the LINUX
 *              operating system.  INET is implemented using the  BSD Socket
 *              interface as the means of communication with the user level.
 *
 *              Definitions for the UDP protocol.
 *
 * Version:     @(#)udp.h       1.0.2   04/28/93
 *
 * Author:      Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
 *
 *              This program is free software; you can redistribute it and/or
 *              modify it under the terms of the GNU General Public License
 *              as published by the Free Software Foundation; either version
 *              2 of the License, or (at your option) any later version.
 */
#ifndef _LINUX_UDP_H

#define _LINUX_UDP_H

#include <net/inet_sock.h>
#include <linux/skbuff.h>
#include <net/netns/hash.h>
#include <uapi/linux/udp.h>


static inline struct udphdr *udp_hdr(const struct sk_buff *skb) { return (struct udphdr *)skb_transport_header(skb); }

Contributors

PersonTokensPropCommitsCommitProp
joe perchesjoe perches26100.00%1100.00%
Total26100.00%1100.00%


static inline struct udphdr *inner_udp_hdr(const struct sk_buff *skb) { return (struct udphdr *)skb_inner_transport_header(skb); }

Contributors

PersonTokensPropCommitsCommitProp
joseph gasparakisjoseph gasparakis26100.00%1100.00%
Total26100.00%1100.00%

#define UDP_HTABLE_SIZE_MIN (CONFIG_BASE_SMALL ? 128 : 256)
static inline u32 udp_hashfn(const struct net *net, u32 num, u32 mask) { return (num + net_hash_mix(net)) & mask; }

Contributors

PersonTokensPropCommitsCommitProp
pavel emelianovpavel emelianov2477.42%360.00%
eric dumazeteric dumazet722.58%240.00%
Total31100.00%5100.00%

struct udp_sock { /* inet_sock has to be the first member */ struct inet_sock inet; #define udp_port_hash inet.sk.__sk_common.skc_u16hashes[0] #define udp_portaddr_hash inet.sk.__sk_common.skc_u16hashes[1] #define udp_portaddr_node inet.sk.__sk_common.skc_portaddr_node int pending; /* Any pending frames ? */ unsigned int corkflag; /* Cork is required */ __u8 encap_type; /* Is this an Encapsulation socket? */ unsigned char no_check6_tx:1,/* Send zero UDP6 checksums on TX? */ no_check6_rx:1;/* Allow zero UDP6 checksums on RX? */ /* * Following member retains the information to create a UDP header * when the socket is uncorked. */ __u16 len; /* total length of pending frames */ /* * Fields specific to UDP-Lite. */ __u16 pcslen; __u16 pcrlen; /* indicator bits used by pcflag: */ #define UDPLITE_BIT 0x1 /* set by udplite proto init function */ #define UDPLITE_SEND_CC 0x2 /* set via udplite setsockopt */ #define UDPLITE_RECV_CC 0x4 /* set via udplite setsocktopt */ __u8 pcflag; /* marks socket as UDP-Lite if > 0 */ __u8 unused[3]; /* * For encapsulation sockets. */ int (*encap_rcv)(struct sock *sk, struct sk_buff *skb); void (*encap_destroy)(struct sock *sk); /* GRO functions for UDP socket */ struct sk_buff ** (*gro_receive)(struct sock *sk, struct sk_buff **head, struct sk_buff *skb); int (*gro_complete)(struct sock *sk, struct sk_buff *skb, int nhoff); };
static inline struct udp_sock *udp_sk(const struct sock *sk) { return (struct udp_sock *)sk; }

Contributors

PersonTokensPropCommitsCommitProp
ingo molnaringo molnar1773.91%133.33%
alexey kuznetsovalexey kuznetsov313.04%133.33%
arnaldo carvalho de meloarnaldo carvalho de melo313.04%133.33%
Total23100.00%3100.00%


static inline void udp_set_no_check6_tx(struct sock *sk, bool val) { udp_sk(sk)->no_check6_tx = val; }

Contributors

PersonTokensPropCommitsCommitProp
tom herberttom herbert24100.00%1100.00%
Total24100.00%1100.00%


static inline void udp_set_no_check6_rx(struct sock *sk, bool val) { udp_sk(sk)->no_check6_rx = val; }

Contributors

PersonTokensPropCommitsCommitProp
tom herberttom herbert24100.00%1100.00%
Total24100.00%1100.00%


static inline bool udp_get_no_check6_tx(struct sock *sk) { return udp_sk(sk)->no_check6_tx; }

Contributors

PersonTokensPropCommitsCommitProp
tom herberttom herbert20100.00%1100.00%
Total20100.00%1100.00%


static inline bool udp_get_no_check6_rx(struct sock *sk) { return udp_sk(sk)->no_check6_rx; }

Contributors

PersonTokensPropCommitsCommitProp
tom herberttom herbert20100.00%1100.00%
Total20100.00%1100.00%

#define udp_portaddr_for_each_entry(__sk, list) \ hlist_for_each_entry(__sk, list, __sk_common.skc_portaddr_node) #define udp_portaddr_for_each_entry_rcu(__sk, list) \ hlist_for_each_entry_rcu(__sk, list, __sk_common.skc_portaddr_node) #define IS_UDPLITE(__sk) (udp_sk(__sk)->pcflag) #endif /* _LINUX_UDP_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
tom herberttom herbert14836.19%415.38%
eric dumazeteric dumazet4110.02%623.08%
gerrit renkergerrit renker368.80%13.85%
joe perchesjoe perches266.36%13.85%
pavel emelianovpavel emelianov266.36%311.54%
joseph gasparakisjoseph gasparakis266.36%13.85%
james chapmanjames chapman245.87%13.85%
alexey kuznetsovalexey kuznetsov225.38%13.85%
ingo molnaringo molnar174.16%13.85%
tom parkintom parkin122.93%13.85%
pre-gitpre-git102.44%13.85%
arnaldo carvalho de meloarnaldo carvalho de melo92.20%13.85%
david s. millerdavid s. miller40.98%13.85%
david howellsdavid howells40.98%13.85%
derek atkinsderek atkins30.73%13.85%
adrian bunkadrian bunk10.24%13.85%
Total409100.00%26100.00%
Directory: include/linux
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
{% endraw %}