diff options
author | iap10@freefall.cl.cam.ac.uk <iap10@freefall.cl.cam.ac.uk> | 2005-02-09 23:23:30 +0000 |
---|---|---|
committer | iap10@freefall.cl.cam.ac.uk <iap10@freefall.cl.cam.ac.uk> | 2005-02-09 23:23:30 +0000 |
commit | 8e5a6833ffa2a6b1dbbdcc6957ed1df6adb8543f (patch) | |
tree | a06019d71f5cd62c4662bea00c391c0d3724fbd3 /tools/vnet | |
parent | 6be18e86c3d59af8af7dd6edf995797b09ffe3ef (diff) | |
download | xen-8e5a6833ffa2a6b1dbbdcc6957ed1df6adb8543f.tar.gz xen-8e5a6833ffa2a6b1dbbdcc6957ed1df6adb8543f.tar.bz2 xen-8e5a6833ffa2a6b1dbbdcc6957ed1df6adb8543f.zip |
bitkeeper revision 1.1159.223.85 (420a9b72OGag4m4sDtlxM-918tbudQ)
Subject: [Xen-devel] VNET - full update
Allows vnets to compile and run under 2.6.10/xen-testing.
PATCH: vnet-cleanup.patch
Signed off by: bgb@nt-nv.com
Signed-off-by: ian@xensource.com
Diffstat (limited to 'tools/vnet')
-rw-r--r-- | tools/vnet/INSTALL | 31 | ||||
-rw-r--r-- | tools/vnet/Makefile | 10 | ||||
-rw-r--r-- | tools/vnet/vnet-module/Makefile-2.6 | 4 | ||||
-rw-r--r-- | tools/vnet/vnet-module/if_varp.h | 4 | ||||
-rw-r--r-- | tools/vnet/vnet-module/varp.c | 14 | ||||
-rw-r--r-- | tools/vnet/vnetd/vcache.c | 14 |
6 files changed, 54 insertions, 23 deletions
diff --git a/tools/vnet/INSTALL b/tools/vnet/INSTALL new file mode 100644 index 0000000000..8ece553116 --- /dev/null +++ b/tools/vnet/INSTALL @@ -0,0 +1,31 @@ +To compile and install run "make install"; if it fails or you need to reinstall +run "make clean" first or the build will fail, at least that is what I have +found under 2.6.10. + +Other important items: +1) You will need to have your xen0 kernel compiled with HMAC_SUPPORT + 2.6.x = (MAIN MENU: Cryptographic Options -> HMAC Support) + BEFORE running "make install". + +2) You will want at least some of the other alogorithms listed under + "Cryptographic Options" for the kernel compiled as modules. + +3) You will want the networking IPsec/VLAN options compiled in as modules + 2.6.x = (MAIN MENU: Device Drivers -> Networking Support -> + Networking Options -> + IP: AH transformation + IP: ESP transformation + IP: IPComp transformation + IP: tunnel transformation + + IPsec user configuration interface + + 802.1Q VLAN Support + +4) The module (vnet_module) will not properly load from the command line + with a "modprobe vnet_module". Use network-vnet to properly configure + your system and load the module for you. + +Please refer to the additional documentation found in tools/vnet/doc for +proper syntax and config file parameters. + diff --git a/tools/vnet/Makefile b/tools/vnet/Makefile index 63939dff9d..d4d8183130 100644 --- a/tools/vnet/Makefile +++ b/tools/vnet/Makefile @@ -12,6 +12,7 @@ export prefix?=$(shell cd ../../dist/install && pwd) all: compile compile: vnetd vnet-module +#compile: vnet-module gc.tar.gz: wget http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/$@ @@ -20,10 +21,8 @@ gc: gc.tar.gz tar xfz gc.tar.gz ln -sf gc?.? gc -gc/Makefile: - (cd gc && ./configure --prefix=`pwd`/install) - -gc-install: gc gc/Makefile +gc-install: gc + (cd gc && make test && ./configure --prefix=`pwd`/install) make -C gc make -C gc install @@ -47,5 +46,6 @@ install: compile clean: -$(MAKE) -C vnetd clean -$(MAKE) -C vnet-module clean - + -rm -rf gc?.? gc + pristine: clean gc-pristine diff --git a/tools/vnet/vnet-module/Makefile-2.6 b/tools/vnet/vnet-module/Makefile-2.6 index 64e57ea5ff..053391e572 100644 --- a/tools/vnet/vnet-module/Makefile-2.6 +++ b/tools/vnet/vnet-module/Makefile-2.6 @@ -38,8 +38,8 @@ module modules: .PHONY: install install-module modules_install install install-module modules_install: module - install -m 0755 -d $(DESTDIR)$(KERNEL_MODULE_DIR) - install -m 0554 $(KERNEL_MODULE) $(DESTDIR)$(KERNEL_MODULE_DIR) + install -m 0755 -d $(DESTDIR)$(KERNEL_MODULE_DIR)/xen + install -m 0554 $(KERNEL_MODULE) $(DESTDIR)$(KERNEL_MODULE_DIR)/xen .PHONY: clean clean: diff --git a/tools/vnet/vnet-module/if_varp.h b/tools/vnet/vnet-module/if_varp.h index 49058471db..c4b752ac49 100644 --- a/tools/vnet/vnet-module/if_varp.h +++ b/tools/vnet/vnet-module/if_varp.h @@ -36,7 +36,7 @@ typedef struct VnetMsgHdr { } __attribute__((packed)) VnetMsgHdr; typedef struct VarpHdr { - VnetMsgHdr; + VnetMsgHdr vnetmsghdr; uint32_t vnet; Vmac vmac; uint32_t addr; @@ -50,4 +50,4 @@ typedef struct VarpHdr { -#endif /* ! _VNET_IF_VARP_H */ +#endif /* ! _VNET_IF_VARP_H */ diff --git a/tools/vnet/vnet-module/varp.c b/tools/vnet/vnet-module/varp.c index 3b1507e045..f7bdf81d97 100644 --- a/tools/vnet/vnet-module/varp.c +++ b/tools/vnet/vnet-module/varp.c @@ -368,8 +368,8 @@ int varp_send(u16 opcode, struct net_device *dev, struct sk_buff *skbin, // Varp header. varph = (void*)skb_put(skbout, varp_n); *varph = (VarpHdr){}; - varph->id = htons(VARP_ID); - varph->opcode = htons(opcode); + varph->vnetmsghdr.id = htons(VARP_ID); + varph->vnetmsghdr.opcode = htons(opcode); varph->vnet = htonl(vnet); varph->vmac = *vmac; varph->addr = saddr; @@ -1076,9 +1076,9 @@ int varp_handle_message(struct sk_buff *skb){ goto exit; } mine = 1; - if(varph->id != htons(VARP_ID)){ + if(varph->vnetmsghdr.id != htons(VARP_ID)){ // It's not varp at all - ignore it. - wprintf("> Unknown id: %d \n", ntohs(varph->id)); + wprintf("> Unknown id: %d \n", ntohs(varph->vnetmsghdr.id)); goto exit; } if(1){ @@ -1086,13 +1086,13 @@ int varp_handle_message(struct sk_buff *skb){ NIPQUAD(skb->nh.iph->saddr), NIPQUAD(skb->nh.iph->daddr)); dprintf("> sport=%u dport=%u\n", ntohs(skb->h.uh->source), ntohs(skb->h.uh->dest)); dprintf("> opcode=%d vnet=%u vmac=" MACFMT " addr=" IPFMT "\n", - ntohs(varph->opcode), + ntohs(varph->vnetmsghdr.opcode), ntohl(varph->vnet), MAC6TUPLE(varph->vmac.mac), NIPQUAD(varph->addr)); varp_dprint(); } - switch(ntohs(varph->opcode)){ + switch(ntohs(varph->vnetmsghdr.opcode)){ case VARP_OP_REQUEST: err = varp_handle_request(skb, varph); break; @@ -1100,7 +1100,7 @@ int varp_handle_message(struct sk_buff *skb){ err = varp_handle_announce(skb, varph); break; default: - wprintf("> Unknown opcode: %d \n", ntohs(varph->opcode)); + wprintf("> Unknown opcode: %d \n", ntohs(varph->vnetmsghdr.opcode)); break; } exit: diff --git a/tools/vnet/vnetd/vcache.c b/tools/vnet/vnetd/vcache.c index cd06988236..1ea81ba292 100644 --- a/tools/vnet/vnetd/vcache.c +++ b/tools/vnet/vnetd/vcache.c @@ -102,11 +102,11 @@ int varp_send(Conn *conn, uint16_t opcode, uint32_t vnet, Vmac *vmac, uint32_t a int varp_n = sizeof(VarpHdr); VarpHdr varph = {}; - varph.id = htons(VARP_ID); - varph.opcode = htons(opcode); - varph.vnet = vnet; - varph.vmac = *vmac; - varph.addr = addr; + varph.vnetmsghdr.id = htons(VARP_ID); + varph.vnetmsghdr.opcode = htons(opcode); + varph.vnet = vnet; + varph.vmac = *vmac; + varph.addr = addr; if(0){ struct sockaddr_in self; @@ -503,7 +503,7 @@ void VarpCache_sweep(VarpCache *z, int all){ * @param local whether it's local or not */ void vcache_forward_varp(VarpHdr *varph, int local){ - uint16_t opcode = ntohs(varph->opcode); + uint16_t opcode = ntohs(varph->vnetmsghdr.opcode); if(local){ ConnList *l; for(l = vnetd->connections; l; l = l->next){ @@ -611,7 +611,7 @@ int vcache_handle_message(IPMessage *msg, int local){ dprintf("> opcode=%d vnet=%u vmac=" MACFMT "\n", ntohs(varph->opcode), ntohl(varph->vnet), MAC6TUPLE(varph->vmac.mac)); } - switch(ntohs(varph->opcode)){ + switch(ntohs(varph->vnetmsghdr.opcode)){ case VARP_OP_REQUEST: err = vcache_handle_request(msg, varph, local); break; |