cregit-Linux how code gets into the kernel

Release 4.7 include/net/dsfield.h

Directory: include/net
/* 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
pre-gitpre-git1794.44%266.67%
jan engelhardtjan 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
pre-gitpre-git2488.89%250.00%
jan engelhardtjan engelhardt27.41%125.00%
al viroal 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
pre-gitpre-git9592.23%266.67%
al viroal 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
pre-gitpre-git4266.67%360.00%
hideaki yoshifujihideaki yoshifuji2031.75%120.00%
al viroal viro11.59%120.00%
Total63100.00%5100.00%

#endif

Overall Contributors

PersonTokensPropCommitsCommitProp
pre-gitpre-git20085.84%342.86%
hideaki yoshifujihideaki yoshifuji208.58%114.29%
al viroal viro104.29%228.57%
jan engelhardtjan engelhardt31.29%114.29%
Total233100.00%7100.00%
Directory: include/net
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
{% endraw %}