Home
last modified time | relevance | path

Searched full:mpls (Results 1 – 25 of 79) sorted by relevance

1234

/linux/tools/testing/selftests/tc-testing/tc-tests/actions/
H A Dmpls.json4 "name": "Add MPLS dec_ttl action with pipe opcode",
7 "mpls"
14 "$TC actions flush action mpls",
20 "cmdUnderTest": "$TC actions add action mpls dec_ttl pipe index 8",
22 "verifyCmd": "$TC actions list action mpls",
23 "matchPattern": "action order [0-9]+: mpls.*dec_ttl.*pipe.*index 8 ref",
26 "$TC actions flush action mpls"
31 "name": "Add mpls dec_ttl action with pass opcode",
34 "mpls"
41 "$TC actions flush action mpls",
[all …]
/linux/net/mpls/
H A DKconfig3 # MPLS configuration
6 menuconfig MPLS config
13 MPLS remains a simple way of making tunnels.
15 If you have not heard of MPLS you probably want to say N here.
17 if MPLS
20 tristate "MPLS: GSO support"
22 This is helper module to allow segmentation of non-MPLS GSO packets
23 that have had MPLS stack entries pushed onto them and thus
24 become MPLS GSO packets.
27 tristate "MPLS: routing support"
[all …]
H A Daf_mpls.c10 #include <linux/mpls.h>
82 if (index < net->mpls.platform_labels) { in mpls_route_input_rcu()
84 rcu_dereference(net->mpls.platform_label); in mpls_route_input_rcu()
300 * the incoming MPLS header, otherwise decrement the in mpls_egress()
305 net->mpls.ip_ttl_propagate)) in mpls_egress()
322 * the incoming MPLS header, otherwise decrement the in mpls_egress()
327 net->mpls.ip_ttl_propagate)) in mpls_egress()
562 platform_label = rtnl_dereference(net->mpls.platform_label); in mpls_route_update()
578 platform_label = rtnl_dereference(net->mpls.platform_label); in find_free_label()
579 platform_labels = net->mpls.platform_labels; in find_free_label()
[all …]
H A Dmpls_iptunnel.c3 * mpls tunnels An implementation mpls tunnels using the light weight tunnel
12 #include <linux/mpls.h>
80 !net->mpls.ip_ttl_propagate) in mpls_xmit()
81 ttl = net->mpls.default_ttl; in mpls_xmit()
89 !net->mpls.ip_ttl_propagate) in mpls_xmit()
90 ttl = net->mpls.default_ttl; in mpls_xmit()
300 MODULE_ALIAS_RTNL_LWT(MPLS);
H A Dmpls_gso.c3 * MPLS GSO Support
18 #include <net/mpls.h>
94 pr_info("MPLS GSO support\n"); in mpls_gso_init()
111 MODULE_DESCRIPTION("MPLS GSO support");
H A DMakefile3 # Makefile for MPLS.
/linux/tools/testing/selftests/net/
H A Dbareudp.sh6 # The bareudp module allows to tunnel network protocols like IP or MPLS over
9 # IPv4, IPv6 or MPLS packets on the overlay).
21 # veth address as gateway. For MPLS reachability tests, an MPLS header is
37 # | (encapsulated with MPLS label 203) |
45 # | Traffic type: IP or MPLS (depending on test)
56 # | * Encapsulate IP or MPLS packets received on veth10 into UDP |
58 # | * Decapsulate bareudp packets (either IP or MPLS, over UDP) |
67 # | Traffic type: IP or MPLS (depending on test), over UDP
78 # | * Decapsulate bareudp packets (either IP or MPLS, over UDP) |
80 # | * Encapsulate IP or MPLS packets received on veth23 into UDP |
[all …]
/linux/Documentation/networking/
H A Dmpls-sysctl.rst4 MPLS Sysfs variables
7 /proc/sys/net/mpls/* Variables:
20 label will be recognized by the kernel and mpls forwarding
32 the MPLS header on imposing labels and propagated from the
33 MPLS header to the IPv4/IPv6 header on popping the last label.
35 If disabled, the MPLS transport network will appear as a
42 Default TTL value to use for MPLS packets where it cannot be
H A Dbareudp.rst12 tunnelling different L3 protocols like MPLS, IP, NSH etc. inside a UDP tunnel.
17 The bareudp device supports special handling for MPLS & IP as they can have
19 The MPLS protocol can have ethertypes ETH_P_MPLS_UC (unicast) & ETH_P_MPLS_MC (multicast).
32 0x8847 (MPLS traffic). The destination port of the UDP header will be set to
40 same family. It is currently only available for IP and MPLS. This mode has to
50 For MPLS, the multiproto mode allows the tunnel to handle both unicast
51 and multicast MPLS packets.
H A Dpktgen.rst197 pgset "mpls 0001000a,0002000a,0000000a" set MPLS labels (in this example
211 pgset "mpls 0" turn off mpls (or any invalid argument works too!)
342 mpls
/linux/Documentation/netlink/specs/
H A Dovs_flow.yaml51 name: ovs-key-mpls
55 name: mpls-lse
303 name: ovs-action-push-mpls
307 name: mpls-lse
311 MPLS label stack entry to push
313 name: mpls-ethertype
319 indicating MPLS unicast or multicast. Other are rejected.
321 name: ovs-action-add-mpls
325 name: mpls-lse
329 MPLS label stack entry to push
[all …]
/linux/tools/testing/selftests/net/forwarding/
H A Dtc_mpls_l2vpn.sh16 # | -encapsulate Ethernet into MPLS |
23 # | | -remove MPLS header |
27 # | (Ethernet over MPLS traffic)
33 # | -remove MPLS header |
38 # | | -encapsulate Ethernet into MPLS |
84 action mpls mac_push label 102 \
94 action mpls pop protocol teb \
113 action mpls mac_push label 101 \
123 action mpls pop protocol teb \
H A Dtc_flower.sh376 # Unfortunately, mausezahn can't build MPLS headers when used in L2
556 flower $tcflags mpls lse depth 1 label 0 action continue
558 flower $tcflags mpls lse depth 1 tc 0 action continue
560 flower $tcflags mpls lse depth 1 bos 0 action continue
562 flower $tcflags mpls lse depth 1 ttl 0 action continue
566 flower $tcflags mpls lse depth 2 label 1048575 action continue
568 flower $tcflags mpls lse depth 2 tc 7 action continue
570 flower $tcflags mpls lse depth 2 bos 1 action continue
572 flower $tcflags mpls lse depth 2 ttl 255 action continue
576 flower $tcflags mpls lse depth 1 action continue
[all …]
/linux/include/uapi/linux/tc_act/
H A Dtc_mpls.h26 TCA_MPLS_LABEL, /* u32; MPLS label. Lower 20 bits are used. */
27 TCA_MPLS_TC, /* u8; MPLS TC field. Lower 3 bits are used. */
28 TCA_MPLS_TTL, /* u8; MPLS TTL field. Must not be 0. */
29 TCA_MPLS_BOS, /* u8; MPLS BOS field. Either 1 or 0. */
/linux/tools/testing/selftests/bpf/
H A Dtest_tc_tunnel.sh127 for mac in none mpls eth ; do
159 echo " or: $0 <ipv4|ipv6> <tuntype> <none|mpls|eth> <data_len>"
226 if [[ "$mac" == "mpls" ]]; then
269 if [[ "$tuntype" == "ip6udp" && "$mac" == "mpls" ]]; then
270 # No support for MPLS IPv6 fou tunnel; expect failure.
280 elif [[ "$mac" == "mpls" ]]; then
283 ip netns exec "${ns2}" sysctl -qw net.mpls.platform_labels=65536
284 ip netns exec "${ns2}" ip -f mpls route add 1000 dev lo
286 ip netns exec "${ns2}" sysctl -qw net.mpls.conf.testtun0.input=1
/linux/drivers/net/ethernet/mellanox/mlx5/core/en/tc/act/
H A Dmpls.c19 NL_SET_ERR_MSG_MOD(extack, "mpls push is supported only for mpls_uc protocol"); in tc_act_can_offload_mpls_push()
59 /* we only support mpls pop if it is the first action in tc_act_can_offload_mpls_pop()
66 NL_SET_ERR_MSG_MOD(extack, "mpls pop supported only as first action or with decap"); in tc_act_can_offload_mpls_pop()
71 NL_SET_ERR_MSG_MOD(extack, "mpls pop supported only on bareudp devices"); in tc_act_can_offload_mpls_pop()
H A Dmirred.c125 NL_SET_ERR_MSG_MOD(extack, "mpls is supported only through a bareudp device"); in tc_act_can_offload_mirred()
130 NL_SET_ERR_MSG_MOD(extack, "vlan pop eth is supported only with mpls push"); in tc_act_can_offload_mirred()
135 NL_SET_ERR_MSG_MOD(extack, "mpls pop is only supported with vlan eth push"); in tc_act_can_offload_mirred()
/linux/drivers/net/ethernet/mellanox/mlx5/core/en/
H A Dtc_tun_mplsoudp.c5 #include <net/mpls.h>
35 struct mpls_shim_hdr *mpls; in generate_ip_tun_hdr() local
37 mpls = (struct mpls_shim_hdr *)(udp + 1); in generate_ip_tun_hdr()
41 *mpls = mpls_entry_encode(mpls_info->label, mpls_info->ttl, mpls_info->tc, mpls_info->bos); in generate_ip_tun_hdr()
/linux/tools/testing/selftests/bpf/progs/
H A Dbpf_flow.c18 #include <linux/mpls.h>
35 #define MPLS 4 macro
129 bpf_tail_call_static(skb, &jmp_table, MPLS); in parse_eth_proto()
392 PROG(MPLS)(struct __sk_buff *skb) in PROG() argument
395 struct mpls_label *mpls, _mpls; in PROG() local
397 mpls = bpf_flow_dissect_get_header(skb, sizeof(*mpls), &_mpls); in PROG()
398 if (!mpls) in PROG()
/linux/drivers/net/ethernet/intel/ice/
H A Dice_protocol_type.h320 * C = MPLS (0x8847) - There is at least 1 MPLS tag in the outer header
322 * D = MPLS (0x8848) - There is at least 1 MPLS tag in the outer header
324 * E = multi MPLS - There is more than a single MPLS tag in the outer header
325 * F = inner MPLS - There is inner MPLS tag in the packet
/linux/include/uapi/linux/
H A Dopenvswitch.h707 * @mpls_lse: MPLS label stack entry to push.
711 * %ETH_P_MPLS_MC, indicating MPLS unicast or multicast. Other are rejected.
721 * @mpls_lse: MPLS label stack entry to push.
723 * @tun_flags: MPLS tunnel attributes.
726 * %ETH_P_MPLS_MC, indicating MPLS unicast or multicast. Other are rejected.
735 * insertion of MPLS header.
736 * When false, the MPLS header
739 * When true, the MPLS header
965 * @OVS_ACTION_ATTR_PUSH_MPLS: Push a new MPLS label stack entry onto the
966 * top of the packets MPLS label stack. Set the ethertype of the
[all …]
H A Dmpls_iptunnel.h3 * mpls tunnel api
17 /* MPLS tunnel attributes
/linux/tools/testing/selftests/tc-testing/tc-tests/infra/
H A Dactions.json27 "name": "Reference mpls action object in filter",
30 "mpls"
37 "$TC action add action mpls pop protocol ipv4 index 1"
39 …$TC filter add dev $DUMMY parent ffff: handle 0x1 prio 1 protocol ip matchall action mpls index 1",
/linux/net/core/
H A Dpktgen.c105 * MPLS support by Steven Whitehouse <steve@chygwyn.com>
193 pf(MPLS_RND) /* Random MPLS labels */ \
285 int pkt_overhead; /* overhead for MPLS, VLANs, IPSEC etc */
362 /* MPLS */
363 unsigned int nr_labels; /* Depth of stack, 0 = no MPLS */
637 seq_puts(seq, " mpls: "); in pktgen_if_show()
1648 if (!strcmp(name, "mpls")) { in pktgen_if_write()
1655 cnt = sprintf(pg_result, "OK: mpls="); in pktgen_if_write()
1684 pr_debug("MPLS auto turned off\n"); in pktgen_if_write()
1686 pkt_dev->nr_labels = 0; /* turn off MPLS */ in pktgen_if_write()
[all …]
/linux/net/openvswitch/
H A Dactions.c26 #include <net/mpls.h>
57 u16 network_offset; /* valid only for MPLS */
219 flow_key->mpls.lse[0] = lse; in set_mpls()
1425 struct ovs_action_push_mpls *mpls = nla_data(a); in do_execute_actions() local
1427 err = push_mpls(skb, key, mpls->mpls_lse, in do_execute_actions()
1428 mpls->mpls_ethertype, skb->mac_len); in do_execute_actions()
1432 struct ovs_action_add_mpls *mpls = nla_data(a); in do_execute_actions() local
1435 if (mpls->tun_flags & OVS_MPLS_L3_TUNNEL_FLAG_MASK) in do_execute_actions()
1438 err = push_mpls(skb, key, mpls->mpls_lse, in do_execute_actions()
1439 mpls->mpls_ethertype, mac_len); in do_execute_actions()

1234