/linux/tools/testing/selftests/tc-testing/tc-tests/actions/ |
H A D | mpls.json | 4 "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 D | Kconfig | 3 # 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 D | af_mpls.c | 10 #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 D | mpls_iptunnel.c | 3 * 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 D | mpls_gso.c | 3 * 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 D | Makefile | 3 # Makefile for MPLS.
|
/linux/tools/testing/selftests/net/ |
H A D | bareudp.sh | 6 # 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 D | mpls-sysctl.rst | 4 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 D | bareudp.rst | 12 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 D | pktgen.rst | 197 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 D | ovs_flow.yaml | 51 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 D | tc_mpls_l2vpn.sh | 16 # | -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 D | tc_flower.sh | 376 # 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 D | tc_mpls.h | 26 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 D | test_tc_tunnel.sh | 127 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 D | mpls.c | 19 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 D | mirred.c | 125 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 D | tc_tun_mplsoudp.c | 5 #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 D | bpf_flow.c | 18 #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 D | ice_protocol_type.h | 320 * 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 D | openvswitch.h | 707 * @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 D | mpls_iptunnel.h | 3 * mpls tunnel api 17 /* MPLS tunnel attributes
|
/linux/tools/testing/selftests/tc-testing/tc-tests/infra/ |
H A D | actions.json | 27 "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 D | pktgen.c | 105 * 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 D | actions.c | 26 #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()
|