[ovs-discuss] About ovs_vport_init() error

Ken Ajiro ken-ajiro at xr.jp.nec.com
Thu Jan 17 07:10:17 UTC 2019


  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__);   <==========
		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() ?

Ken Ajiro

More information about the discuss mailing list