/openbmc/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" 11 "$TC actions flush action mpls", 17 "cmdUnderTest": "$TC actions add action mpls dec_ttl pipe index 8", 19 "verifyCmd": "$TC actions list action mpls", 20 "matchPattern": "action order [0-9]+: mpls.*dec_ttl.*pipe.*index 8 ref", 23 "$TC actions flush action mpls" 28 "name": "Add mpls dec_ttl action with pass opcode", 31 "mpls" 35 "$TC actions flush action mpls", [all …]
|
/openbmc/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> 82 !net->mpls.ip_ttl_propagate) in mpls_xmit() 83 ttl = net->mpls.default_ttl; in mpls_xmit() 91 !net->mpls.ip_ttl_propagate) in mpls_xmit() 92 ttl = net->mpls.default_ttl; in mpls_xmit() 302 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");
|
/openbmc/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. 16 The bareudp device supports special handling for MPLS & IP as they can have 18 MPLS procotcol can have ethertypes ETH_P_MPLS_UC (unicast) & ETH_P_MPLS_MC (multicast). 31 0x8847 (MPLS traffic). The destination port of the UDP header will be set to 39 same family. It is currently only available for IP and MPLS. This mode has to 49 For MPLS, the multiproto mode allows the tunnel to handle both unicast 50 and multicast MPLS packets.
|
H A D | pktgen.rst | 196 pgset "mpls 0001000a,0002000a,0000000a" set MPLS labels (in this example 210 pgset "mpls 0" turn off mpls (or any invalid argument works too!) 331 mpls
|
/openbmc/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 …]
|
/openbmc/linux/net/sched/ |
H A D | act_mpls.c | 8 #include <linux/mpls.h> 12 #include <net/mpls.h> 65 /* Ensure 'data' points at mac_header prior calling mpls manipulating in tcf_mpls_act() 138 NL_SET_ERR_MSG_MOD(extack, "Invalid MPLS label length"); in valid_label() 143 NL_SET_ERR_MSG_MOD(extack, "MPLS label out of range"); in valid_label() 187 NL_SET_ERR_MSG_MOD(extack, "No MPLS params"); in tcf_mpls_init() 218 NL_SET_ERR_MSG_MOD(extack, "Protocol must be set for MPLS pop"); in tcf_mpls_init() 223 NL_SET_ERR_MSG_MOD(extack, "Invalid protocol type for MPLS pop"); in tcf_mpls_init() 229 NL_SET_ERR_MSG_MOD(extack, "Label, TTL, TC or BOS cannot be used with MPLS pop"); in tcf_mpls_init() 237 NL_SET_ERR_MSG_MOD(extack, "Label, TTL, TC, BOS or protocol cannot be used with MPLS dec_ttl"); in tcf_mpls_init() [all …]
|
/openbmc/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 …]
|
/openbmc/linux/Documentation/netlink/specs/ |
H A D | ovs_flow.yaml | 51 name: ovs-key-mpls 55 name: mpls-lse 300 name: ovs-action-push-mpls 304 name: mpls-lse 308 MPLS label stack entry to push 310 name: mpls-ethertype 316 indicating MPLS unicast or multicast. Other are rejected. 318 name: ovs-action-add-mpls 322 name: mpls-lse 326 MPLS label stack entry to push [all …]
|
/openbmc/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. */
|
/openbmc/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
|
/openbmc/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()
|
/openbmc/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()
|
/openbmc/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()
|
/openbmc/linux/drivers/net/ethernet/intel/ice/ |
H A D | ice_protocol_type.h | 303 * C = MPLS (0x8847) - There is at least 1 MPLS tag in the outer header 305 * D = MPLS (0x8848) - There is at least 1 MPLS tag in the outer header 307 * E = multi MPLS - There is more than a single MPLS tag in the outer header 308 * F = inner MPLS - There is inner MPLS tag in the packet
|
/openbmc/linux/drivers/net/ethernet/mellanox/mlx5/core/steering/ |
H A D | dr_types.h | 725 u32 outer_first_mpls_label:20; /* First MPLS LABEL (outer) */ 726 u32 outer_first_mpls_exp:3; /* First MPLS EXP (outer) */ 727 u32 outer_first_mpls_s_bos:1; /* First MPLS S_BOS (outer) */ 728 u32 outer_first_mpls_ttl:8; /* First MPLS TTL (outer) */ 730 u32 inner_first_mpls_label:20; /* First MPLS LABEL (inner) */ 731 u32 inner_first_mpls_exp:3; /* First MPLS EXP (inner) */ 732 u32 inner_first_mpls_s_bos:1; /* First MPLS S_BOS (inner) */ 733 u32 inner_first_mpls_ttl:8; /* First MPLS TTL (inner) */ 735 u32 outer_first_mpls_over_gre_label:20; /* last MPLS LABEL (outer) */ 736 u32 outer_first_mpls_over_gre_exp:3; /* last MPLS EXP (outer) */ [all …]
|
/openbmc/linux/include/uapi/linux/ |
H A D | mpls_iptunnel.h | 3 * mpls tunnel api 17 /* MPLS tunnel attributes
|
H A D | openvswitch.h | 706 * @mpls_lse: MPLS label stack entry to push. 710 * %ETH_P_MPLS_MC, indicating MPLS unicast or multicast. Other are rejected. 720 * @mpls_lse: MPLS label stack entry to push. 722 * @tun_flags: MPLS tunnel attributes. 725 * %ETH_P_MPLS_MC, indicating MPLS unicast or multicast. Other are rejected. 734 * insertion of MPLS header. 735 * When false, the MPLS header 738 * When true, the MPLS header 939 * @OVS_ACTION_ATTR_PUSH_MPLS: Push a new MPLS label stack entry onto the 940 * top of the packets MPLS label stack. Set the ethertype of the [all …]
|
/openbmc/linux/tools/testing/selftests/tc-testing/tc-tests/infra/ |
H A D | actions.json | 27 "name": "Reference mpls action object in filter", 30 "mpls" 35 "$TC action add action mpls pop protocol ipv4 index 1" 37 …$TC filter add dev $DUMMY parent ffff: handle 0x1 prio 1 protocol ip matchall action mpls index 1", 45 "$TC actions flush action mpls"
|
/openbmc/linux/drivers/infiniband/hw/mlx5/ |
H A D | fs.c | 427 &ib_spec->mpls.mask.tag)) in parse_flow_attr() 432 &ib_spec->mpls.val.tag, in parse_flow_attr() 433 sizeof(ib_spec->mpls.val.tag)); in parse_flow_attr() 436 &ib_spec->mpls.mask.tag, in parse_flow_attr() 437 sizeof(ib_spec->mpls.mask.tag)); in parse_flow_attr() 442 &ib_spec->mpls.mask.tag)) in parse_flow_attr() 447 &ib_spec->mpls.val.tag, in parse_flow_attr() 448 sizeof(ib_spec->mpls.val.tag)); in parse_flow_attr() 451 &ib_spec->mpls.mask.tag, in parse_flow_attr() 452 sizeof(ib_spec->mpls.mask.tag)); in parse_flow_attr() [all …]
|