cregit-Linux how code gets into the kernel

Release 4.15 include/net/dsfield.h

Directory: include/net
/* SPDX-License-Identifier: GPL-2.0 */
/* include/net/dsfield.h - Manipulation of the Differentiated Services field */

/* Written 1998-2000 by Werner Almesberger, EPFL ICA */


#ifndef __NET_DSFIELD_H

#define __NET_DSFIELD_H

#include <linux/types.h>
#include <linux/ip.h>
#include <linux/ipv6.h>
#include <asm/byteorder.h>



static inline __u8 ipv4_get_dsfield(const struct iphdr *iph) { return iph->tos; }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)1794.44%266.67%
Jan Engelhardt15.56%133.33%
Total18100.00%3100.00%


static inline __u8 ipv6_get_dsfield(const struct ipv6hdr *ipv6h) { return ntohs(*(const __be16 *)ipv6h) >> 4; }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)2488.89%250.00%
Jan Engelhardt27.41%125.00%
Al Viro13.70%125.00%
Total27100.00%4100.00%


static inline void ipv4_change_dsfield(struct iphdr *iph,__u8 mask, __u8 value) { __u32 check = ntohs((__force __be16)iph->check); __u8 dsfield; dsfield = (iph->tos & mask) | value; check += iph->tos; if ((check+1) >> 16) check = (check+1) & 0xffff; check -= dsfield; check += check >> 16; /* adjust carry */ iph->check = (__force __sum16)htons(check); iph->tos = dsfield; }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)9592.23%266.67%
Al Viro87.77%133.33%
Total103100.00%3100.00%


static inline void ipv6_change_dsfield(struct ipv6hdr *ipv6h,__u8 mask, __u8 value) { __be16 *p = (__force __be16 *)ipv6h; *p = (*p & htons((((u16)mask << 4) | 0xf00f))) | htons((u16)value << 4); }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)4266.67%360.00%
Hideaki Yoshifuji / 吉藤英明2031.75%120.00%
Al Viro11.59%120.00%
Total63100.00%5100.00%

#endif

Overall Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)20085.47%337.50%
Hideaki Yoshifuji / 吉藤英明208.55%112.50%
Al Viro104.27%225.00%
Jan Engelhardt31.28%112.50%
Greg Kroah-Hartman10.43%112.50%
Total234100.00%8100.00%
Directory: include/net
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.