Hello all,
I have got an issue with GRE encapsulation, need some help.
VPP creates broken tunnel, no actial connectivity.
Both stable/1804 and master, Ubuntu Xenial, gcc 5.4.0

Steps to reproduce:
1. Create and configure veth pair
    ip link add name veth0 type veth peer name vpp0
    ip link set dev vpp0 up
    ip link set dev veth0 up
    ip addr add 172.16.0.1/24 dev veth0

2. Run VPP and configure a tunnel
DBGvpp# sh ver
vpp v18.10-rc0~434-gb4603a7 built by kahzeemin on kahzeemin-nix at Wed Sep 19 10:50:56 MSK 2018

DBGvpp# create host name vpp0
host-vpp0

DBGvpp# set int state host-vpp0 up
DBGvpp# set int ip addr host-vpp0 172.16.0.2/24
DBGvpp# create gre tun src 172.16.0.2 dst 172.16.0.1
gre0

DBGvpp# ip route add 2001:db8::1/128 via gre0
DBGvpp# set int state gre0 up
DBGvpp# enable ip6 int gre0
DBGvpp#  sh ip6 fib 2001:db8::1/128
ipv6-VRF:0, fib_index:0, flow hash:[src dst sport dport proto ] locks:[src:plugin-hi:1, src:default-route:1, ]
2001:db8::1/128 fib:0 index:12 locks:2
  src:CLI refs:1 entry-flags:attached, src-flags:added,contributing,active,
    path-list:[14] locks:2 flags:shared, uPRF-list:15 len:1 itfs:[2, ]
      path:[14] pl-index:14 ip6 weight=1 pref=0 attached-nexthop: oper-flags:resolved, cfg-flags:attached,
        2001:db8::1 gre0 (p2p)
      [@0]: ipv6 via :: gre0: mtu:9000 4500000000000000fe2f64abac100002ac100001000086dd
             stacked-on:
               [@3]: ipv6 via 172.16.0.1 host-vpp0: mtu:9000 aae5c055aecc02fe6575de3586dd

 forwarding:   unicast-ip6-chain
  [@0]: dpo-load-balance: [proto:ip6 index:14 buckets:1 uRPF:15 to:[0:0]]
    [0] [@6]: ipv6 via :: gre0: mtu:9000 4500000000000000fe2f64abac100002ac100001000086dd
        stacked-on:
          [@3]: ipv6 via 172.16.0.1 host-vpp0: mtu:9000 aae5c055aecc02fe6575de3586dd


Please note this 'stacked-on: ipv6 via 172.16.0.1' leading to icmp6 neighbor discovery and no actual connectivity through the tunnel.

It looks like the problem is hardcoded next_hop_proto = DPO_PROTO_IP6 in add_del_route_t_handler invocation from ip6_add_del_route_t_handler (src/vnet/ip/ip_api.c:1091) and similar which is not necesseraly true about gre tunnels.

create host name vpp0
set int state host-vpp0 up
set int ip addr host-vpp0 172.16.0.2/24
create gre tun src 172.16.0.2 dst 172.16.0.1
ip route add 2001:db8::1/128 via gre0
set int state gre0 up
enable ip6 int gre0
sh ip6 fib 2001:db8::1/128

Attachment: gre.sh
Description: application/shellscript

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#10564): https://lists.fd.io/g/vpp-dev/message/10564
Mute This Topic: https://lists.fd.io/mt/25753662/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to