| .. | .. |
|---|
| 17 | 17 | struct udp_table udplite_table __read_mostly; |
|---|
| 18 | 18 | EXPORT_SYMBOL(udplite_table); |
|---|
| 19 | 19 | |
|---|
| 20 | +/* Designate sk as UDP-Lite socket */ |
|---|
| 21 | +static int udplite_sk_init(struct sock *sk) |
|---|
| 22 | +{ |
|---|
| 23 | + udp_init_sock(sk); |
|---|
| 24 | + udp_sk(sk)->pcflag = UDPLITE_BIT; |
|---|
| 25 | + return 0; |
|---|
| 26 | +} |
|---|
| 27 | + |
|---|
| 20 | 28 | static int udplite_rcv(struct sk_buff *skb) |
|---|
| 21 | 29 | { |
|---|
| 22 | 30 | return __udp4_lib_rcv(skb, &udplite_table, IPPROTO_UDPLITE); |
|---|
| .. | .. |
|---|
| 54 | 62 | .get_port = udp_v4_get_port, |
|---|
| 55 | 63 | .memory_allocated = &udp_memory_allocated, |
|---|
| 56 | 64 | .sysctl_mem = sysctl_udp_mem, |
|---|
| 65 | + .sysctl_wmem_offset = offsetof(struct net, ipv4.sysctl_udp_wmem_min), |
|---|
| 66 | + .sysctl_rmem_offset = offsetof(struct net, ipv4.sysctl_udp_rmem_min), |
|---|
| 57 | 67 | .obj_size = sizeof(struct udp_sock), |
|---|
| 58 | 68 | .h.udp_table = &udplite_table, |
|---|
| 59 | 69 | }; |
|---|