ip6_output.c (7f36f5d11cda050b118f76d774151427a18d15ef) | ip6_output.c (2b89ed65a6f201a6a4f0450ad289aa4bf491608c) |
---|---|
1/* 2 * IPv6 output functions 3 * Linux INET6 implementation 4 * 5 * Authors: 6 * Pedro Roque <roque@di.fc.ul.pt> 7 * 8 * Based on linux/net/ipv4/ip_output.c --- 1330 unchanged lines hidden (view full) --- 1339 return -EMSGSIZE; 1340 } 1341 1342 /* CHECKSUM_PARTIAL only with no extension headers and when 1343 * we are not going to fragment 1344 */ 1345 if (transhdrlen && sk->sk_protocol == IPPROTO_UDP && 1346 headersize == sizeof(struct ipv6hdr) && | 1/* 2 * IPv6 output functions 3 * Linux INET6 implementation 4 * 5 * Authors: 6 * Pedro Roque <roque@di.fc.ul.pt> 7 * 8 * Based on linux/net/ipv4/ip_output.c --- 1330 unchanged lines hidden (view full) --- 1339 return -EMSGSIZE; 1340 } 1341 1342 /* CHECKSUM_PARTIAL only with no extension headers and when 1343 * we are not going to fragment 1344 */ 1345 if (transhdrlen && sk->sk_protocol == IPPROTO_UDP && 1346 headersize == sizeof(struct ipv6hdr) && |
1347 length < mtu - headersize && | 1347 length <= mtu - headersize && |
1348 !(flags & MSG_MORE) && 1349 rt->dst.dev->features & (NETIF_F_IPV6_CSUM | NETIF_F_HW_CSUM)) 1350 csummode = CHECKSUM_PARTIAL; 1351 1352 if (sk->sk_type == SOCK_DGRAM || sk->sk_type == SOCK_RAW) { 1353 sock_tx_timestamp(sk, sockc->tsflags, &tx_flags); 1354 if (tx_flags & SKBTX_ANY_SW_TSTAMP && 1355 sk->sk_tsflags & SOF_TIMESTAMPING_OPT_ID) --- 455 unchanged lines hidden --- | 1348 !(flags & MSG_MORE) && 1349 rt->dst.dev->features & (NETIF_F_IPV6_CSUM | NETIF_F_HW_CSUM)) 1350 csummode = CHECKSUM_PARTIAL; 1351 1352 if (sk->sk_type == SOCK_DGRAM || sk->sk_type == SOCK_RAW) { 1353 sock_tx_timestamp(sk, sockc->tsflags, &tx_flags); 1354 if (tx_flags & SKBTX_ANY_SW_TSTAMP && 1355 sk->sk_tsflags & SOF_TIMESTAMPING_OPT_ID) --- 455 unchanged lines hidden --- |