Home
last modified time | relevance | path

Searched full:tunnel (Results 1 – 25 of 462) sorted by relevance

12345678910>>...19

/linux-6.12.1/drivers/gpu/drm/display/
Ddrm_dp_tunnel.c301 const char *drm_dp_tunnel_name(const struct drm_dp_tunnel *tunnel) in drm_dp_tunnel_name() argument
303 return tunnel->name; in drm_dp_tunnel_name()
320 * A tunnel group with 0 group ID shouldn't have more than one in lookup_or_alloc_group()
333 "DPTUN: Can't allocate more tunnel groups\n"); in lookup_or_alloc_group()
364 tunnel_get(struct drm_dp_tunnel *tunnel) in tunnel_get() argument
366 kref_get(&tunnel->kref); in tunnel_get()
368 return tunnel; in tunnel_get()
373 struct drm_dp_tunnel *tunnel = container_of(kref, typeof(*tunnel), kref); in free_tunnel() local
374 struct drm_dp_tunnel_group *group = tunnel->group; in free_tunnel()
376 list_del(&tunnel->node); in free_tunnel()
[all …]
/linux-6.12.1/drivers/thunderbolt/
Dtunnel.c15 #include "tunnel.h"
108 /* Add some credits for potential second DMA tunnel */ in tb_available_credits()
150 struct tb_tunnel *tunnel; in tb_tunnel_alloc() local
152 tunnel = kzalloc(sizeof(*tunnel), GFP_KERNEL); in tb_tunnel_alloc()
153 if (!tunnel) in tb_tunnel_alloc()
156 tunnel->paths = kcalloc(npaths, sizeof(tunnel->paths[0]), GFP_KERNEL); in tb_tunnel_alloc()
157 if (!tunnel->paths) { in tb_tunnel_alloc()
158 tb_tunnel_free(tunnel); in tb_tunnel_alloc()
162 INIT_LIST_HEAD(&tunnel->list); in tb_tunnel_alloc()
163 tunnel->tb = tb; in tb_tunnel_alloc()
[all …]
Dtunnel.h22 * struct tb_tunnel - Tunnel between two ports
24 * @src_port: Source port of the tunnel
25 * @dst_port: Destination port of the tunnel. For discovered incomplete
27 * @paths: All paths required by the tunnel
29 * @init: Optional tunnel specific initialization
30 * @deinit: Optional tunnel specific de-initialization
31 * @activate: Optional tunnel specific activation/deactivation
32 * @maximum_bandwidth: Returns maximum possible bandwidth for this tunnel
33 * @allocated_bandwidth: Return how much bandwidth is allocated for the tunnel
34 * @alloc_bandwidth: Change tunnel bandwidth allocation
[all …]
Dtb.c17 #include "tunnel.h"
163 struct tb_tunnel *tunnel; in tb_discover_dp_resources() local
165 list_for_each_entry(tunnel, &tcm->tunnel_list, list) { in tb_discover_dp_resources()
166 if (tb_tunnel_is_dp(tunnel)) in tb_discover_dp_resources()
167 tb_discover_dp_resource(tb, tunnel->dst_port); in tb_discover_dp_resources()
176 const struct tb_tunnel *tunnel; in tb_enable_clx() local
197 * tunnel and in that case bail out. in tb_enable_clx()
199 list_for_each_entry(tunnel, &tcm->tunnel_list, list) { in tb_enable_clx()
200 if (tb_tunnel_is_dma(tunnel)) { in tb_enable_clx()
201 if (tb_tunnel_port_on_path(tunnel, tb_upstream_port(sw))) in tb_enable_clx()
[all …]
Dtest.c13 #include "tunnel.h"
1341 * Create PCIe tunnel between host and two devices. in tb_test_tunnel_pcie()
1393 struct tb_tunnel *tunnel; in tb_test_tunnel_dp() local
1396 * Create DP tunnel between Host and Device in tb_test_tunnel_dp()
1409 tunnel = tb_tunnel_alloc_dp(NULL, in, out, 1, 0, 0); in tb_test_tunnel_dp()
1410 KUNIT_ASSERT_NOT_NULL(test, tunnel); in tb_test_tunnel_dp()
1411 KUNIT_EXPECT_EQ(test, tunnel->type, TB_TUNNEL_DP); in tb_test_tunnel_dp()
1412 KUNIT_EXPECT_PTR_EQ(test, tunnel->src_port, in); in tb_test_tunnel_dp()
1413 KUNIT_EXPECT_PTR_EQ(test, tunnel->dst_port, out); in tb_test_tunnel_dp()
1414 KUNIT_ASSERT_EQ(test, tunnel->npaths, 3); in tb_test_tunnel_dp()
[all …]
/linux-6.12.1/include/drm/display/
Ddrm_dp_tunnel.h24 struct drm_dp_tunnel *tunnel; member
31 drm_dp_tunnel_get(struct drm_dp_tunnel *tunnel, struct ref_tracker **tracker);
34 drm_dp_tunnel_put(struct drm_dp_tunnel *tunnel, struct ref_tracker **tracker);
36 static inline void drm_dp_tunnel_ref_get(struct drm_dp_tunnel *tunnel, in drm_dp_tunnel_ref_get() argument
39 tunnel_ref->tunnel = drm_dp_tunnel_get(tunnel, &tunnel_ref->tracker); in drm_dp_tunnel_ref_get()
44 drm_dp_tunnel_put(tunnel_ref->tunnel, &tunnel_ref->tracker); in drm_dp_tunnel_ref_put()
45 tunnel_ref->tunnel = NULL; in drm_dp_tunnel_ref_put()
51 int drm_dp_tunnel_destroy(struct drm_dp_tunnel *tunnel);
53 int drm_dp_tunnel_enable_bw_alloc(struct drm_dp_tunnel *tunnel);
54 int drm_dp_tunnel_disable_bw_alloc(struct drm_dp_tunnel *tunnel);
[all …]
/linux-6.12.1/drivers/gpu/drm/i915/display/
Dintel_dp_tunnel.c24 * intel_dp_tunnel_disconnect - Disconnect a DP tunnel from a port
25 * @intel_dp: DP port object the tunnel is connected to
27 * Disconnect a DP tunnel from @intel_dp, destroying any related state. This
32 drm_dp_tunnel_destroy(intel_dp->tunnel); in intel_dp_tunnel_disconnect()
33 intel_dp->tunnel = NULL; in intel_dp_tunnel_disconnect()
37 * intel_dp_tunnel_destroy - Destroy a DP tunnel
38 * @intel_dp: DP port object the tunnel is connected to
40 * Destroy a DP tunnel connected to @intel_dp, after disabling the BW
41 * allocation mode on the tunnel. This should be called while destroying the
47 drm_dp_tunnel_disable_bw_alloc(intel_dp->tunnel); in intel_dp_tunnel_destroy()
[all …]
/linux-6.12.1/net/l2tp/
Dl2tp_core.c143 static void l2tp_tunnel_free(struct l2tp_tunnel *tunnel) in l2tp_tunnel_free() argument
145 struct sock *sk = tunnel->sock; in l2tp_tunnel_free()
147 trace_free_tunnel(tunnel); in l2tp_tunnel_free()
151 switch (tunnel->encap) { in l2tp_tunnel_free()
162 tunnel->sock = NULL; in l2tp_tunnel_free()
166 kfree_rcu(tunnel, rcu); in l2tp_tunnel_free()
172 if (session->tunnel) in l2tp_session_free()
173 l2tp_tunnel_put(session->tunnel); in l2tp_session_free()
181 struct l2tp_tunnel *tunnel; in l2tp_sk_to_tunnel() local
186 idr_for_each_entry_ul(&pn->l2tp_tunnel_idr, tunnel, tmp, tunnel_id) { in l2tp_sk_to_tunnel()
[all …]
Dl2tp_netlink.c38 int flags, struct l2tp_tunnel *tunnel, u8 cmd);
51 struct l2tp_tunnel *tunnel; in l2tp_nl_session_get() local
62 tunnel = l2tp_tunnel_get(net, tunnel_id); in l2tp_nl_session_get()
63 if (tunnel) { in l2tp_nl_session_get()
64 session = l2tp_session_get(net, tunnel->sock, tunnel->version, in l2tp_nl_session_get()
66 l2tp_tunnel_put(tunnel); in l2tp_nl_session_get()
105 struct l2tp_tunnel *tunnel, in l2tp_tunnel_notify() argument
116 NLM_F_ACK, tunnel, cmd); in l2tp_tunnel_notify()
193 struct l2tp_tunnel *tunnel; in l2tp_nl_cmd_tunnel_create() local
221 /* Managed tunnels take the tunnel socket from userspace. in l2tp_nl_cmd_tunnel_create()
[all …]
Dl2tp_ppp.c27 * zero, the socket is treated as a special tunnel management socket.
150 /* Helpers to obtain tunnel/session contexts from sockets.
267 struct l2tp_tunnel *tunnel; in pppol2tp_sendmsg() local
274 /* Get session and tunnel contexts */ in pppol2tp_sendmsg()
280 tunnel = session->tunnel; in pppol2tp_sendmsg()
282 uhlen = (tunnel->encap == L2TP_ENCAPTYPE_UDP) ? sizeof(struct udphdr) : 0; in pppol2tp_sendmsg()
344 struct l2tp_tunnel *tunnel; in pppol2tp_xmit() local
350 /* Get session and tunnel contexts from the socket */ in pppol2tp_xmit()
355 tunnel = session->tunnel; in pppol2tp_xmit()
357 uhlen = (tunnel->encap == L2TP_ENCAPTYPE_UDP) ? sizeof(struct udphdr) : 0; in pppol2tp_xmit()
[all …]
Dl2tp_debugfs.c37 unsigned long tkey; /* lookup key of current tunnel */
39 struct l2tp_tunnel *tunnel; member
40 struct l2tp_session *session; /* NULL means get next tunnel */
46 if (pd->tunnel) in l2tp_dfs_next_tunnel()
47 l2tp_tunnel_put(pd->tunnel); in l2tp_dfs_next_tunnel()
49 pd->tunnel = l2tp_tunnel_get_next(pd->net, &pd->tkey); in l2tp_dfs_next_tunnel()
59 pd->session = l2tp_session_get_next(pd->net, pd->tunnel->sock, in l2tp_dfs_next_session()
60 pd->tunnel->version, in l2tp_dfs_next_session()
61 pd->tunnel->tunnel_id, &pd->skey); in l2tp_dfs_next_session()
84 if (!pd->tunnel) in l2tp_dfs_seq_start()
[all …]
Dtrace.h28 TP_PROTO(struct l2tp_tunnel *tunnel),
29 TP_ARGS(tunnel),
34 memcpy(__entry->name, tunnel->name, L2TP_TUNNEL_NAME_MAX);
52 TP_PROTO(struct l2tp_tunnel *tunnel),
53 TP_ARGS(tunnel),
63 memcpy(__entry->name, tunnel->name, L2TP_TUNNEL_NAME_MAX);
64 __entry->fd = tunnel->fd;
65 __entry->tid = tunnel->tunnel_id;
66 __entry->ptid = tunnel->peer_tunnel_id;
67 __entry->version = tunnel->version;
[all …]
Dl2tp_core.h18 /* Random numbers used for internal consistency checks of tunnel and session structures */
63 * Is linked into a per-tunnel session list and a per-net ("global") IDR tree.
71 struct l2tp_tunnel *tunnel; /* back pointer to tunnel context */ member
83 u32 nr_max; /* max NR. Depends on tunnel */
88 struct list_head list; /* per-tunnel list node */
133 /* L2TP tunnel configuration */
151 /* Represents a tunnel instance.
153 * Holds the tunnel socket (either passed from userspace or directly created by the kernel).
154 * Maintains a list of sessions belonging to the tunnel instance.
163 bool acpt_newsess; /* indicates whether this tunnel accepts
[all …]
/linux-6.12.1/Documentation/networking/
Dl2tp.rst27 An L2TP tunnel carries one or more L2TP sessions. Each tunnel is
30 to/from L2TP. Fields in the L2TP header identify the tunnel or session
40 1) Create a tunnel socket. Exchange L2TP control protocol messages
41 with the peer over that socket in order to establish a tunnel.
43 2) Create a tunnel context in the kernel, using information
47 tunnel socket in order to establish a session.
57 Tunnel Sockets
62 To create a tunnel socket for use by L2TP, the standard POSIX
65 For example, for a tunnel using IPv4 addresses and UDP encapsulation::
69 Or for a tunnel using IPv6 addresses and IP encapsulation::
[all …]
/linux-6.12.1/include/uapi/linux/
Dip6_tunnel.h28 char name[IFNAMSIZ]; /* name of tunnel device */
30 __u8 proto; /* tunnel protocol */
31 __u8 encap_limit; /* encapsulation limit for tunnel */
32 __u8 hop_limit; /* hop limit for tunnel */
33 __be32 flowinfo; /* traffic class and flowlabel for tunnel */
34 __u32 flags; /* tunnel flags */
35 struct in6_addr laddr; /* local tunnel end-point address */
36 struct in6_addr raddr; /* remote tunnel end-point address */
40 char name[IFNAMSIZ]; /* name of tunnel device */
42 __u8 proto; /* tunnel protocol */
[all …]
/linux-6.12.1/net/ipv4/
Dip_tunnel.c69 /* Fallback tunnel: no source, no destination, no key, no options
71 Tunnel hash table:
73 it will match only tunnel with the same key; if it is not present,
74 it will match only keyless tunnel.
77 will match fallback tunnel.
78 Given src, dst and key, find appropriate for input tunnel.
237 struct ip_tunnel *tunnel; in __ip_tunnel_create() local
263 tunnel = netdev_priv(dev); in __ip_tunnel_create()
264 tunnel->parms = *parms; in __ip_tunnel_create()
265 tunnel->net = net; in __ip_tunnel_create()
[all …]
Dipip.c22 /* tunnel.c: an IP tunnel driver
24 The purpose of this driver is to provide an IP tunnel through
25 which you can tunnel network traffic transparently across subnets.
36 Made the tunnels use dev->name not tunnel: when error reporting.
42 Changed to tunnel to destination gateway in addition to the
43 tunnel's pointopoint address
51 /* Things I wish I had known when writing the tunnel driver:
55 contains the tunnel device that _we_ are.
204 /* no tunnel info required for ipip. */
210 /* no tunnel info required for mplsip. */
[all …]
Dip_gre.c76 - traceroute does not work. I planned to relay ICMP from tunnel,
94 (branches, that exceed pmtu are pruned) and tunnel mtu
271 struct ip_tunnel *tunnel; in erspan_rcv() local
284 tunnel = ip_tunnel_lookup(itn, skb->dev->ifindex, flags, in erspan_rcv()
295 tunnel = ip_tunnel_lookup(itn, skb->dev->ifindex, flags, in erspan_rcv()
299 if (tunnel) { in erspan_rcv()
314 if (tunnel->collect_md) { in erspan_rcv()
350 ip_tunnel_rcv(tunnel, skb, tpi, tun_dst, log_ecn_error); in erspan_rcv()
365 struct ip_tunnel *tunnel; in __ipgre_rcv() local
368 tunnel = ip_tunnel_lookup(itn, skb->dev->ifindex, tpi->flags, in __ipgre_rcv()
[all …]
Dip_vti.c4 * virtual tunnel interface
50 struct ip_tunnel *tunnel; in vti_input() local
58 tunnel = ip_tunnel_lookup(itn, skb->dev->ifindex, flags, in vti_input()
60 if (tunnel) { in vti_input()
64 XFRM_TUNNEL_SKB_CB(skb)->tunnel.ip4 = tunnel; in vti_input()
67 skb->dev = tunnel->dev; in vti_input()
103 struct ip_tunnel *tunnel = XFRM_TUNNEL_SKB_CB(skb)->tunnel.ip4; in vti_rcv_cb() local
107 if (!tunnel) in vti_rcv_cb()
110 dev = tunnel->dev; in vti_rcv_cb()
134 skb->mark = be32_to_cpu(tunnel->parms.i_key); in vti_rcv_cb()
[all …]
/linux-6.12.1/drivers/net/
Damt.c121 static u32 amt_source_hash(struct amt_tunnel_list *tunnel, union amt_addr *src) in amt_source_hash() argument
123 u32 hash = jhash(src, sizeof(*src), tunnel->amt->hash_seed); in amt_source_hash()
125 return reciprocal_scale(hash, tunnel->amt->hash_buckets); in amt_source_hash()
182 static struct amt_source_node *amt_lookup_src(struct amt_tunnel_list *tunnel, in amt_lookup_src() argument
187 u32 hash = amt_source_hash(tunnel, src); in amt_lookup_src()
198 static u32 amt_group_hash(struct amt_tunnel_list *tunnel, union amt_addr *group) in amt_group_hash() argument
200 u32 hash = jhash(group, sizeof(*group), tunnel->amt->hash_seed); in amt_group_hash()
202 return reciprocal_scale(hash, tunnel->amt->hash_buckets); in amt_group_hash()
205 static struct amt_group_node *amt_lookup_group(struct amt_tunnel_list *tunnel, in amt_lookup_group() argument
210 u32 hash = amt_group_hash(tunnel, group); in amt_lookup_group()
[all …]
/linux-6.12.1/net/ipv6/
Dsit.c3 * IPv6 over IPv4 tunnel device - Simple Internet Transition (SIT)
72 static bool check_6rd(struct ip_tunnel *tunnel, const struct in6_addr *v6dst,
514 struct ip_tunnel *tunnel = netdev_priv(dev); in ipip6_tunnel_uninit() local
515 struct sit_net *sitn = net_generic(tunnel->net, sit_net_id); in ipip6_tunnel_uninit()
520 ipip6_tunnel_unlink(sitn, tunnel); in ipip6_tunnel_uninit()
521 ipip6_tunnel_del_prl(tunnel, NULL); in ipip6_tunnel_uninit()
523 dst_cache_reset(&tunnel->dst_cache); in ipip6_tunnel_uninit()
524 netdev_put(dev, &tunnel->dev_tracker); in ipip6_tunnel_uninit()
605 static inline bool is_spoofed_6rd(struct ip_tunnel *tunnel, const __be32 v4addr, in is_spoofed_6rd() argument
609 if (check_6rd(tunnel, v6addr, &v4embed) && v4addr != v4embed) in is_spoofed_6rd()
[all …]
Dip6_tunnel.c84 /* the IPv6 tunnel fallback device */
102 * ip6_tnl_lookup - fetch tunnel matching the end-point addresses
105 * @remote: the address of the tunnel exit-point
106 * @local: the address of the tunnel entry-point
109 * tunnel matching given end-points if found,
110 * else fallback tunnel if its device is up,
177 * ip6_tnl_bucket - get head of list matching given tunnel parameters
179 * @p: parameters containing tunnel end-points
185 * Return: head of IPv6 tunnel list
204 * ip6_tnl_link - add tunnel to hash table
[all …]
/linux-6.12.1/include/net/
Dip6_tunnel.h22 char name[IFNAMSIZ]; /* name of tunnel device */
24 __u8 proto; /* tunnel protocol */
25 __u8 encap_limit; /* encapsulation limit for tunnel */
26 __u8 hop_limit; /* hop limit for tunnel */
28 __be32 flowinfo; /* traffic class and flowlabel for tunnel */
29 __u32 flags; /* tunnel flags */
30 struct in6_addr laddr; /* local tunnel end-point address */
31 struct in6_addr raddr; /* remote tunnel end-point address */
45 /* IPv6 tunnel */
47 struct ip6_tnl __rcu *next; /* next tunnel in list */
[all …]
/linux-6.12.1/drivers/net/ethernet/broadcom/bnxt/
Dbnxt_tc.h88 /* tunnel encap */
146 /* Tunnel encap/decap hash table
148 * the same tunnel encap/decap params (ip_daddrs, vni, udp_dport)
156 /* tunnel l2 info */
160 /* tunnel handle returned by FW */
168 * The same data-struct is used for L2-flow table and L2-tunnel table.
169 * The L2 part of a flow or tunnel is stored in a hash table.
171 * already existing flow/tunnel must refer to it's flow handle or
205 /* tunnel encap related */
208 /* tunnel decap related */
[all …]
/linux-6.12.1/tools/testing/selftests/bpf/prog_tests/
Dtest_tunnel.c4 * End-to-end eBPF tunnel test suite
5 * The file tests BPF network tunnel implementation.
24 * root namespace with metadata-mode tunnel + BPF
28 * tunnel dev <type>11, ex: gre11, IPv4: 10.1.1.200, IPv6: 1::22 (overlay)
30 * Namespace at_ns0 with native tunnel
33 * tunnel dev <type>00, ex: gre00, IPv4: 10.1.1.100, IPv6: 1::11 (overlay)
42 * 2) Tnl device's egress BPF program is triggered and set the tunnel metadata,
44 * the primary or secondary ip of veth1 as the local ip of tunnel. The
46 * 3) Outer tunnel header is prepended and route the packet to veth1's egress.
48 * 5) Tunnel protocol handler, ex: vxlan_rcv, decap the packet.
[all …]

12345678910>>...19