Re: network bridge configuration for rumprun

  • From: Antti Kantee <pooka@xxxxxx>
  • To: rumpkernel-users@xxxxxxxxxxxxx, "wei.liu2@xxxxxxxxxx" <wei.liu2@xxxxxxxxxx>
  • Date: Mon, 29 Jun 2015 18:09:40 +0000

Ok, multiple executables are executed synchronously in the order given on the rumpbake command line. It should probably be a rumprun-specifyable order, but then again we should be able to specify separate argv[]s too ... all in good time.

There's also a "secret" rumprun_daemon() call which backgrounds the current process. Recall, my original use case for multiple executables baked into the same image was to run programs which print various statistics about what is going on. I'm not sure we'll keep rumprun_daemon() after we solve the question of how to specify launch order and & (note: not demogorgon), hence the no-public-prototype secrecy.

Anyway, you should be able to execute arbitrary config commands now by simply baking in as the first program something like:

int
main()
{

rump_pub_netconfig_ifcreate("tap0");
rump_pub_netconfig_ifcreate("bridge0");
rump_pub_netconfig_bradd("bridge0", "tap0");
rump_pub_netconfig_bradd("bridge0", "xenif0");
rump_pub_netconfig_ifup("bridge0");
}

Note, that's executed after the regular config, so xenif0 should already be configured according to whatever params you gave rumprun. Also note, can't pass custom argv yet, but as a workaround use -e and getenv().

Other related posts: