--- pimd-2.1.0-alpha29.18/kern.c Wed Feb 12 22:56:55 2003 +++ pimd-2.1.0-alpha29.18-vifctln/kern.c Sun Jan 18 22:02:11 2004 @@ -334,6 +334,15 @@ } } +struct vifctln { + vifi_t vifc_vifi; /* Index of VIF */ + unsigned char vifc_flags; /* VIFF_ flags */ + unsigned char vifc_threshold; /* ttl limit */ + unsigned int vifc_rate_limit; /* Rate limiter values (NI) */ + struct in_addr vifc_lcl_addr; /* Our address */ + struct in_addr vifc_rmt_addr; /* IPIP tunnel addr */ + int vifc_ifindex; /* Index of real Interface */ +}; /* * Add a virtual interface in the kernel. @@ -343,7 +352,7 @@ vifi_t vifi; struct uvif *v; { - struct vifctl vc; + struct vifctln vc; vc.vifc_vifi = vifi; /* XXX: we don't support VIFF_TUNNEL; VIFF_SRCRT is obsolete */ @@ -354,6 +363,7 @@ vc.vifc_rate_limit = v->uv_rate_limit; vc.vifc_lcl_addr.s_addr = v->uv_lcl_addr; vc.vifc_rmt_addr.s_addr = v->uv_rmt_addr; + vc.vifc_ifindex = v->uv_ifindex; if (setsockopt(socket, IPPROTO_IP, MRT_ADD_VIF, (char *)&vc, sizeof(vc)) < 0)