/Linux-v6.1/drivers/thunderbolt/ |
D | tunnel.c | 13 #include "tunnel.h" 49 #define __TB_TUNNEL_PRINT(level, tunnel, fmt, arg...) \ argument 51 struct tb_tunnel *__tunnel = (tunnel); \ 61 #define tb_tunnel_WARN(tunnel, fmt, arg...) \ argument 62 __TB_TUNNEL_PRINT(tb_WARN, tunnel, fmt, ##arg) 63 #define tb_tunnel_warn(tunnel, fmt, arg...) \ argument 64 __TB_TUNNEL_PRINT(tb_warn, tunnel, fmt, ##arg) 65 #define tb_tunnel_info(tunnel, fmt, arg...) \ argument 66 __TB_TUNNEL_PRINT(tb_info, tunnel, fmt, ##arg) 67 #define tb_tunnel_dbg(tunnel, fmt, arg...) \ argument [all …]
|
D | tunnel.h | 22 * 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 * @consumed_bandwidth: Return how much bandwidth the tunnel consumes 36 * @type: Type of the tunnel 37 * @max_up: Maximum upstream bandwidth (Mb/s) available for the tunnel. [all …]
|
D | tb.c | 17 #include "tunnel.h" 126 struct tb_tunnel *tunnel; in tb_discover_dp_resources() local 128 list_for_each_entry(tunnel, &tcm->tunnel_list, list) { in tb_discover_dp_resources() 129 if (tb_tunnel_is_dp(tunnel)) in tb_discover_dp_resources() 130 tb_discover_dp_resource(tb, tunnel->dst_port); in tb_discover_dp_resources() 142 struct tb_tunnel *tunnel = NULL; in tb_switch_discover_tunnels() local 146 tunnel = tb_tunnel_discover_dp(tb, port, alloc_hopids); in tb_switch_discover_tunnels() 148 * In case of DP tunnel exists, change host router's in tb_switch_discover_tunnels() 151 if (tunnel) in tb_switch_discover_tunnels() 157 tunnel = tb_tunnel_discover_pci(tb, port, alloc_hopids); in tb_switch_discover_tunnels() [all …]
|
D | test.c | 13 #include "tunnel.h" 1324 * Create PCIe tunnel between host and two devices. in tb_test_tunnel_pcie() 1376 struct tb_tunnel *tunnel; in tb_test_tunnel_dp() local 1379 * Create DP tunnel between Host and Device in tb_test_tunnel_dp() 1392 tunnel = tb_tunnel_alloc_dp(NULL, in, out, 1, 0, 0); in tb_test_tunnel_dp() 1393 KUNIT_ASSERT_NOT_NULL(test, tunnel); in tb_test_tunnel_dp() 1394 KUNIT_EXPECT_EQ(test, tunnel->type, TB_TUNNEL_DP); in tb_test_tunnel_dp() 1395 KUNIT_EXPECT_PTR_EQ(test, tunnel->src_port, in); in tb_test_tunnel_dp() 1396 KUNIT_EXPECT_PTR_EQ(test, tunnel->dst_port, out); in tb_test_tunnel_dp() 1397 KUNIT_ASSERT_EQ(test, tunnel->npaths, 3); in tb_test_tunnel_dp() [all …]
|
/Linux-v6.1/net/l2tp/ |
D | l2tp_core.c | 146 l2tp_session_id_hash(struct l2tp_tunnel *tunnel, u32 session_id) in l2tp_session_id_hash() argument 148 return &tunnel->session_hlist[hash_32(session_id, L2TP_HASH_BITS)]; in l2tp_session_id_hash() 151 static void l2tp_tunnel_free(struct l2tp_tunnel *tunnel) in l2tp_tunnel_free() argument 153 trace_free_tunnel(tunnel); in l2tp_tunnel_free() 154 sock_put(tunnel->sock); in l2tp_tunnel_free() 155 /* the tunnel is freed in the socket destructor */ in l2tp_tunnel_free() 161 if (session->tunnel) in l2tp_session_free() 162 l2tp_tunnel_dec_refcount(session->tunnel); in l2tp_session_free() 168 struct l2tp_tunnel *tunnel = sk->sk_user_data; in l2tp_sk_to_tunnel() local 170 if (tunnel) in l2tp_sk_to_tunnel() [all …]
|
D | l2tp_ppp.c | 27 * zero, the socket is treated as a special tunnel management socket. 151 /* Helpers to obtain tunnel/session contexts from sockets. 272 struct l2tp_tunnel *tunnel; in pppol2tp_sendmsg() local 279 /* Get session and tunnel contexts */ in pppol2tp_sendmsg() 285 tunnel = session->tunnel; in pppol2tp_sendmsg() 287 uhlen = (tunnel->encap == L2TP_ENCAPTYPE_UDP) ? sizeof(struct udphdr) : 0; in pppol2tp_sendmsg() 349 struct l2tp_tunnel *tunnel; in pppol2tp_xmit() local 355 /* Get session and tunnel contexts from the socket */ in pppol2tp_xmit() 360 tunnel = session->tunnel; in pppol2tp_xmit() 362 uhlen = (tunnel->encap == L2TP_ENCAPTYPE_UDP) ? sizeof(struct udphdr) : 0; in pppol2tp_xmit() [all …]
|
D | l2tp_netlink.c | 38 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_tunnel_get_session(tunnel, session_id); in l2tp_nl_session_get() 65 l2tp_tunnel_dec_refcount(tunnel); in l2tp_nl_session_get() 104 struct l2tp_tunnel *tunnel, in l2tp_tunnel_notify() argument 115 NLM_F_ACK, tunnel, cmd); in l2tp_tunnel_notify() 192 struct l2tp_tunnel *tunnel; in l2tp_nl_cmd_tunnel_create() local 220 /* Managed tunnels take the tunnel socket from userspace. in l2tp_nl_cmd_tunnel_create() [all …]
|
D | l2tp_debugfs.c | 37 int tunnel_idx; /* current tunnel */ 38 int session_idx; /* index of session within 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_dec_refcount(pd->tunnel); in l2tp_dfs_next_tunnel() 49 pd->tunnel = l2tp_tunnel_get_nth(pd->net, pd->tunnel_idx); in l2tp_dfs_next_tunnel() 59 pd->session = l2tp_session_get_nth(pd->tunnel, pd->session_idx); in l2tp_dfs_next_session() 82 if (!pd->tunnel) in l2tp_dfs_seq_start() 87 /* NULL tunnel and session indicates end of list */ in l2tp_dfs_seq_start() [all …]
|
D | l2tp_core.h | 18 /* Random numbers used for internal consistency checks of tunnel and session structures */ 22 /* Per tunnel session hash table size */ 66 * Is linked into a per-tunnel session hashlist; and in the case of an L2TPv3 session into 74 struct l2tp_tunnel *tunnel; /* back pointer to tunnel context */ member 86 u32 nr_max; /* max NR. Depends on tunnel */ 132 /* L2TP tunnel configuration */ 150 /* Represents a tunnel instance. 152 * Holds the tunnel socket (either passed from userspace or directly created by the kernel). 153 * Maintains a hashlist of sessions belonging to the tunnel instance. 164 bool acpt_newsess; /* indicates whether this tunnel accepts [all …]
|
D | trace.h | 28 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 …]
|
/Linux-v6.1/Documentation/networking/ |
D | l2tp.rst | 27 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 …]
|
D | gtp.rst | 12 of a GTP tunnel endpoint. 17 GTP is the Generic Tunnel Protocol, which is a 3GPP protocol used for 24 such a tunnel between that external data network and the phone. The 25 tunnel endpoints thus reside on the phone and in the gateway. All 35 is translated into GTP *without breaking the end-to-end tunnel*. So 39 or P-GW (LTE), which terminates the tunnel, decapsulates the packet 53 The module implements the function of a tunnel endpoint, i.e. it is 70 to handle the tunnel establishment, authentication etc. and only the 159 Local GTP-U entity and tunnel identification 166 instance) per IP address. Tunnel Endpoint Identifier (TEID) are unique [all …]
|
/Linux-v6.1/include/uapi/linux/ |
D | ip6_tunnel.h | 28 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-v6.1/net/ipv4/ |
D | ip_tunnel.c | 72 /* Fallback tunnel: no source, no destination, no key, no options 74 Tunnel hash table: 76 it will match only tunnel with the same key; if it is not present, 77 it will match only keyless tunnel. 80 will match fallback tunnel. 81 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 …]
|
D | ipip.c | 22 /* 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. 201 /* no tunnel info required for ipip. */ 207 /* no tunnel info required for mplsip. */ [all …]
|
D | ip_gre.c | 75 - traceroute does not work. I planned to relay ICMP from tunnel, 93 (branches, that exceed pmtu are pruned) and tunnel mtu 269 struct ip_tunnel *tunnel; in erspan_rcv() local 279 tunnel = ip_tunnel_lookup(itn, skb->dev->ifindex, in erspan_rcv() 285 tunnel = ip_tunnel_lookup(itn, skb->dev->ifindex, in erspan_rcv() 290 if (tunnel) { in erspan_rcv() 305 if (tunnel->collect_md) { in erspan_rcv() 341 ip_tunnel_rcv(tunnel, skb, tpi, tun_dst, log_ecn_error); in erspan_rcv() 356 struct ip_tunnel *tunnel; in __ipgre_rcv() local 359 tunnel = ip_tunnel_lookup(itn, skb->dev->ifindex, tpi->flags, in __ipgre_rcv() [all …]
|
D | ip_vti.c | 4 * virtual tunnel interface 50 struct ip_tunnel *tunnel; in vti_input() local 55 tunnel = ip_tunnel_lookup(itn, skb->dev->ifindex, TUNNEL_NO_KEY, in vti_input() 57 if (tunnel) { in vti_input() 61 XFRM_TUNNEL_SKB_CB(skb)->tunnel.ip4 = tunnel; in vti_input() 64 skb->dev = tunnel->dev; in vti_input() 100 struct ip_tunnel *tunnel = XFRM_TUNNEL_SKB_CB(skb)->tunnel.ip4; in vti_rcv_cb() local 104 if (!tunnel) in vti_rcv_cb() 107 dev = tunnel->dev; in vti_rcv_cb() 131 skb->mark = be32_to_cpu(tunnel->parms.i_key); in vti_rcv_cb() [all …]
|
/Linux-v6.1/drivers/net/ |
D | amt.c | 121 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-v6.1/net/ipv6/ |
D | sit.c | 3 * IPv6 over IPv4 tunnel device - Simple Internet Transition (SIT) 71 static bool check_6rd(struct ip_tunnel *tunnel, const struct in6_addr *v6dst, 512 struct ip_tunnel *tunnel = netdev_priv(dev); in ipip6_tunnel_uninit() local 513 struct sit_net *sitn = net_generic(tunnel->net, sit_net_id); in ipip6_tunnel_uninit() 518 ipip6_tunnel_unlink(sitn, tunnel); in ipip6_tunnel_uninit() 519 ipip6_tunnel_del_prl(tunnel, NULL); in ipip6_tunnel_uninit() 521 dst_cache_reset(&tunnel->dst_cache); in ipip6_tunnel_uninit() 522 netdev_put(dev, &tunnel->dev_tracker); in ipip6_tunnel_uninit() 603 static inline bool is_spoofed_6rd(struct ip_tunnel *tunnel, const __be32 v4addr, in is_spoofed_6rd() argument 607 if (check_6rd(tunnel, v6addr, &v4embed) && v4addr != v4embed) in is_spoofed_6rd() [all …]
|
D | ip6_tunnel.c | 83 /* the IPv6 tunnel fallback device */ 101 * ip6_tnl_lookup - fetch tunnel matching the end-point addresses 104 * @remote: the address of the tunnel exit-point 105 * @local: the address of the tunnel entry-point 108 * tunnel matching given end-points if found, 109 * else fallback tunnel if its device is up, 176 * ip6_tnl_bucket - get head of list matching given tunnel parameters 178 * @p: parameters containing tunnel end-points 184 * Return: head of IPv6 tunnel list 203 * ip6_tnl_link - add tunnel to hash table [all …]
|
D | ip6_vti.c | 66 /* the vti6 tunnel fallback device */ 78 * vti6_tnl_lookup - fetch tunnel matching the end-point addresses 80 * @remote: the address of the tunnel exit-point 81 * @local: the address of the tunnel entry-point 84 * tunnel matching given end-points if found, 85 * else fallback tunnel if its device is up, 127 * vti6_tnl_bucket - get head of list matching given tunnel parameters 129 * @p: parameters containing tunnel end-points 135 * Return: head of IPv6 tunnel list 242 * vti6_locate - find or create tunnel matching given parameters [all …]
|
D | ip6_gre.c | 82 /* Tunnel hash table */ 93 it will match only tunnel with the same key; if it is not present, 94 it will match only keyless tunnel. 97 will match fallback tunnel. 113 /* Given src, dst and key, find appropriate for input tunnel. */ 445 net_dbg_ratelimited("%s: Too small hop limit or routing loop in tunnel!\n", in ip6gre_err() 461 net_dbg_ratelimited("%s: Too small encapsulation limit or routing loop in tunnel!\n", in ip6gre_err() 491 struct ip6_tnl *tunnel; in ip6gre_rcv() local 494 tunnel = ip6gre_tunnel_lookup(skb->dev, in ip6gre_rcv() 497 if (tunnel) { in ip6gre_rcv() [all …]
|
/Linux-v6.1/include/net/ |
D | ip6_tunnel.h | 22 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-v6.1/tools/testing/selftests/bpf/ |
D | test_tunnel.sh | 4 # End-to-end eBPF tunnel test suite 5 # The script tests BPF network tunnel implementation. 24 # Root namespace with metadata-mode tunnel + BPF 27 # tunnel dev <type>11, ex: gre11, IPv4: 10.1.1.200, IPv6: 1::22 (overlay) 29 # Namespace at_ns0 with native tunnel 32 # tunnel dev <type>00, ex: gre00, IPv4: 10.1.1.100, IPv6: 1::11 (overlay) 41 # 2) Tnl device's egress BPF program is triggered and set the tunnel metadata, 43 # 3) Outer tunnel header is prepended and route the packet to veth1's egress 45 # 5) Tunnel protocol handler, ex: vxlan_rcv, decap the packet 48 BPF_PIN_TUNNEL_DIR="/sys/fs/bpf/tc/tunnel" [all …]
|
/Linux-v6.1/drivers/net/ethernet/broadcom/bnxt/ |
D | bnxt_tc.h | 88 /* 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 …]
|