diff -r 89b98811ce56 tools/vnet/vnet-module/if_varp.h --- a/tools/vnet/vnet-module/if_varp.h Fri Mar 31 13:29:05 2006 +++ b/tools/vnet/vnet-module/if_varp.h Fri Mar 31 15:39:27 2006 @@ -97,7 +97,7 @@ /** Default address for varp/vnet broadcasts: 224.10.0.1 */ -#define VARP_MCAST_ADDR 0xe00a0001 +#define VARP_MCAST_ADDR "224.10.0.1" /** UDP port to use for varp protocol. */ #define VARP_PORT 1798 diff -r 89b98811ce56 tools/vnet/vnet-module/tunnel.h --- a/tools/vnet/vnet-module/tunnel.h Fri Mar 31 13:29:05 2006 +++ b/tools/vnet/vnet-module/tunnel.h Fri Mar 31 15:39:27 2006 @@ -74,7 +74,7 @@ * * @param tunnel tunnel (may be null) */ -static inline void Tunnel_decref(struct Tunnel *tunnel){ +static void Tunnel_decref(struct Tunnel *tunnel){ if(!tunnel) return; if(atomic_dec_and_test(&tunnel->refcount)){ tunnel->type->close(tunnel); diff -r 89b98811ce56 tools/vnet/vnet-module/varp.c --- a/tools/vnet/vnet-module/varp.c Fri Mar 31 13:29:05 2006 +++ b/tools/vnet/vnet-module/varp.c Fri Mar 31 15:39:27 2006 @@ -200,7 +200,8 @@ /** UDP port (network order). */ u16 varp_port = 0; -char *varp_device = "xen-br0"; +#define VARP_DEVICE_DEFAULT "xen-br0" +char *varp_device = NULL; #define VarpTable_read_lock(vtable, flags) \ do{ read_lock_irqsave(&(vtable)->lock, (flags)); } while(0) @@ -262,8 +263,9 @@ int varp_ucast_addr(uint32_t *addr) { int err = -ENODEV; - const char *devices[] = { varp_device, "eth0", "eth1", "eth2", NULL }; + char *devices[] = { varp_device, "eth0", "eth1", "eth2", NULL }; const char **p; + for(p = devices; err && *p; p++){ err = device_ucast_addr(*p, addr); } @@ -1485,12 +1487,14 @@ static void varp_init_mcast_addr(char *s){ unsigned long v = 0; - dprintf("> %s\n", s); + dprintf("> mcast_addr init=%s\n", s); if(s && (get_inet_addr(s, &v) >= 0)){ - varp_mcast_addr = (u32)v; + varp_mcaddr = s; } else { - varp_mcast_addr = htonl(VARP_MCAST_ADDR); - } + varp_mcaddr = VARP_MCAST_ADDR; + get_inet_addr(varp_mcaddr, &v); + } + varp_mcast_addr = (u32)v; } /** Initialize the varp cache. @@ -1510,9 +1514,12 @@ varp_init_mcast_addr(varp_mcaddr); varp_port = htons(VARP_PORT); + if (varp_device == NULL) + varp_device = VARP_DEVICE_DEFAULT; + err = varp_open(varp_mcast_addr, varp_port); exit: - dprintf("< err=%d\n", err); + dprintf("< varp_init err=%d\n", err); return err; } @@ -1529,8 +1536,10 @@ dprintf("<\n"); } -MODULE_PARM(varp_mcaddr, "s"); +#ifdef __KERNEL__ +module_param_named(mcaddr, varp_mcaddr, charp, 0444); MODULE_PARM_DESC(varp_mcaddr, "VARP multicast address"); -MODULE_PARM(varp_device, "s"); +module_param_named(device, varp_device, charp, 0444); MODULE_PARM_DESC(varp_device, "VARP network device"); +#endif diff -r 89b98811ce56 tools/vnet/vnet-module/vnet.c --- a/tools/vnet/vnet-module/vnet.c Fri Mar 31 13:29:05 2006 +++ b/tools/vnet/vnet-module/vnet.c Fri Mar 31 15:39:27 2006 @@ -657,6 +657,9 @@ if(vnet_encaps && !strcmp(vnet_encaps, "udp")){ etherip_in_udp = 1; + vnet_encaps = "etherip"; + } else { + vnet_encaps = "udp"; } dprintf(">\n"); err = random_module_init(); @@ -691,7 +694,7 @@ module_exit(vnet_module_exit); MODULE_LICENSE("GPL"); -MODULE_PARM(vnet_encaps, "s"); +module_param_named(encaps, vnet_encaps, charp, 0444); MODULE_PARM_DESC(vnet_encaps, "Vnet encapsulation: etherip or udp."); #endif