inet6_protocol
struct inet6_protocol tcpv6_protocol;
struct inet6_protocol udpv6_protocol;
extern struct inet6_protocol __rcu *inet6_protos[MAX_INET_PROTOS];
int inet6_add_protocol(const struct inet6_protocol *prot, unsigned char num);
int inet6_del_protocol(const struct inet6_protocol *prot, unsigned char num);
static const struct inet6_protocol rthdr_protocol = {
static const struct inet6_protocol destopt_protocol = {
static const struct inet6_protocol nodata_protocol = {
const struct inet6_protocol *ipprot;
const struct inet6_protocol *ipprot;
static const struct inet6_protocol icmpv6_protocol = {
static struct inet6_protocol ip6gre_protocol __read_mostly = {
const struct inet6_protocol *ipprot;
static const struct inet6_protocol pim6_protocol = {
struct inet6_protocol __rcu *inet6_protos[MAX_INET_PROTOS] __read_mostly;
int inet6_add_protocol(const struct inet6_protocol *prot, unsigned char protocol)
return !cmpxchg((const struct inet6_protocol **)&inet6_protos[protocol],
int inet6_del_protocol(const struct inet6_protocol *prot, unsigned char protocol)
ret = (cmpxchg((const struct inet6_protocol **)&inet6_protos[protocol],
static const struct inet6_protocol frag_protocol = {
net_hotdata.tcpv6_protocol = (struct inet6_protocol) {
static const struct inet6_protocol tunnel6_protocol = {
static const struct inet6_protocol tunnel46_protocol = {
static const struct inet6_protocol tunnelmpls6_protocol = {
net_hotdata.udpv6_protocol = (struct inet6_protocol) {
static const struct inet6_protocol udplitev6_protocol = {
static const struct inet6_protocol esp6_protocol = {
static const struct inet6_protocol ah6_protocol = {
static const struct inet6_protocol ipcomp6_protocol = {
static inline const struct inet6_protocol *netproto(unsigned char protocol)
static struct inet6_protocol l2tp_ip6_protocol __read_mostly = {
static const struct inet6_protocol sctpv6_protocol = {