1UDPLITE(7)                 Linux Programmer's Manual                UDPLITE(7)
2
3
4

NAME

6       udplite - Lightweight User Datagram Protocol
7

SYNOPSIS

9       #include <sys/socket.h>
10
11       sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDPLITE);
12

DESCRIPTION

14       This  is  an  implementation  of the Lightweight User Datagram Protocol
15       (UDP-Lite), as described in RFC 3828.
16
17       UDP-Lite is an extension of UDP (RFC 768)  to  support  variable-length
18       checksums.   This has advantages for some types of multimedia transport
19       that may be able to make use of slightly damaged datagrams, rather than
20       having them discarded by lower-layer protocols.
21
22       The  variable-length  checksum  coverage is set via a setsockopt(2) op‐
23       tion.  If this option is not set, the only difference from  UDP  is  in
24       using a different IP protocol identifier (IANA number 136).
25
26       The  UDP-Lite  implementation is a full extension of udp(7)—that is, it
27       shares the same API and API behavior, and in addition offers two socket
28       options to control the checksum coverage.
29
30   Address format
31       UDP-Litev4  uses  the  sockaddr_in  address  format described in ip(7).
32       UDP-Litev6 uses the sockaddr_in6 address format described in ipv6(7).
33
34   Socket options
35       To set or get a UDP-Lite socket option, call getsockopt(2) to  read  or
36       setsockopt(2) to write the option with the option level argument set to
37       IPPROTO_UDPLITE.  In addition, all IPPROTO_UDP socket options are valid
38       on a UDP-Lite socket.  See udp(7) for more information.
39
40       The following two options are specific to UDP-Lite.
41
42       UDPLITE_SEND_CSCOV
43              This  option  sets the sender checksum coverage and takes an int
44              as argument,  with  a  checksum  coverage  value  in  the  range
45              0..2^16-1.
46
47              A  value  of 0 means that the entire datagram is always covered.
48              Values from 1-7 are illegal (RFC 3828, 3.1) and are  rounded  up
49              to the minimum coverage of 8.
50
51              With regard to IPv6 jumbograms (RFC 2675), the UDP-Litev6 check‐
52              sum coverage is limited to  the  first  2^16-1  octets,  as  per
53              RFC 3828,  3.5.   Higher values are therefore silently truncated
54              to 2^16-1.  If in doubt, the current coverage value  can  always
55              be queried using getsockopt(2).
56
57       UDPLITE_RECV_CSCOV
58              This  is  the  receiver-side analogue and uses the same argument
59              format and value range as UDPLITE_SEND_CSCOV.   This  option  is
60              not  required  to enable traffic with partial checksum coverage.
61              Its function is that of a traffic filter: when enabled,  it  in‐
62              structs  the  kernel  to  drop all packets which have a coverage
63              less than the specified coverage value.
64
65              When the value of UDPLITE_RECV_CSCOV exceeds the  actual  packet
66              coverage,  incoming packets are silently dropped, but may gener‐
67              ate a warning message in the system log.
68

ERRORS

70       All errors documented for udp(7) may be returned.   UDP-Lite  does  not
71       add further errors.
72

FILES

74       /proc/net/snmp
75              Basic UDP-Litev4 statistics counters.
76
77       /proc/net/snmp6
78              Basic UDP-Litev6 statistics counters.
79

VERSIONS

81       UDP-Litev4/v6 first appeared in Linux 2.6.20.
82

BUGS

84       Where glibc support is missing, the following definitions are needed:
85
86           #define IPPROTO_UDPLITE     136
87           #define UDPLITE_SEND_CSCOV  10
88           #define UDPLITE_RECV_CSCOV  11
89

SEE ALSO

91       ip(7), ipv6(7), socket(7), udp(7)
92
93       RFC 3828 for the Lightweight User Datagram Protocol (UDP-Lite).
94
95       Documentation/networking/udplite.txt in the Linux kernel source tree
96

COLOPHON

98       This  page  is  part of release 5.12 of the Linux man-pages project.  A
99       description of the project, information about reporting bugs,  and  the
100       latest     version     of     this    page,    can    be    found    at
101       https://www.kernel.org/doc/man-pages/.
102
103
104
105Linux                             2021-03-22                        UDPLITE(7)
Impressum