On 1/16/2019 11:10 PM, Ken Ajiro wrote:
Hello,
On my kernel 4.9.0 box, I could not insmod openvswitch.ko (OVS 2.10.1) by
following error:
openvswitch: LISP tunneling driver
GRE over IPv4 demultiplexor driver
can't add protocol
Cannot take GRE protocol rx entry- The GRE/ERSPAN rx feature not supported
openvswitch: GRE over IPv4 tunneling driver
openvswitch: rpl_ip6gre_init: can't add protocol
openvswitch: GRE TX only over IPv6 tunneling driver
insmod: ERROR: could not insert module /tmp/openvswitch.ko: Operation not
permitted
I think that this error caused by following logic:
datapath/vport.c ovs_vport_init()
err = ip6gre_init();
if (err && err != -EEXIST) {
goto err_ip6gre; <==========
} else {
if (err == -EEXIST) {
pr_warn("IPv6 GRE/ERSPAN Rx mode is not supported\n");
goto skip_ip6_tunnel_init;
}
}
datapath/linux/compat/ip6_gre.c rpl_ip6gre_init():
err = inet6_add_protocol(&ip6gre_protocol, IPPROTO_GRE);
if (err < 0) {
pr_info("%s: can't add protocol\n", __func__); <==========
unregister_pernet_device(&ip6gre_net_ops);
goto ip6_gre_loaded;
}
I checked net/ipv6/protocol.c and understand that when inet6_add_protocol()
failed it returns -1 (same to -EPERM) instead of -EEXIT.
Is it needed checking if err is -EEXIT at ovs_vport_init() ?
That's -EEXIST.
Yes, special handling is required in that case. It looks to me like
you have the gre and ip6_gre kernel
modules already loaded. Try unloading those first.
- Greg
Thanks,
_______________________________________________
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss