Apparently there are two fields you can use to specify the interface:
struct ifnet *rt_ifp;
struct ifaddr *rt_ifa;
These two fields represent the “answer”, as it were, to the question posed by a route lookup; that is, they name the interface and interface address to be used in sending a packet to the destination or set of destinations which this route represents.
Update:
There's an rt_dev
field in the sturct, I think you can set it to the interface name:
char ifname[] = "eth1";
rtentry.rt_dev = ifname;