PATCH: vnet-cleanup.patch
Signed off by: bgb@xxxxxxxxx
------------------------------------------------------------------------
diff -ruN xen-2.0-testing.bk/tools/vnet/INSTALL xen/tools/vnet/INSTALL
--- xen-2.0-testing.bk/tools/vnet/INSTALL 1969-12-31 20:00:00.000000000
-0400
+++ xen/tools/vnet/INSTALL 2005-02-09 17:43:33.050255000 -0400
@@ -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 -ruN xen-2.0-testing.bk/tools/vnet/Makefile xen/tools/vnet/Makefile
--- xen-2.0-testing.bk/tools/vnet/Makefile 2005-01-31 20:38:33.000000000
-0400
+++ xen/tools/vnet/Makefile 2005-02-09 13:39:34.000000000 -0400
@@ -12,6 +12,7 @@
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 @@
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 @@
clean:
-$(MAKE) -C vnetd clean
-$(MAKE) -C vnet-module clean
-
+ -rm -rf gc?.? gc
+
pristine: clean gc-pristine
diff -ruN xen-2.0-testing.bk/tools/vnet/vnet-module/Makefile-2.6
xen/tools/vnet/vnet-module/Makefile-2.6
--- xen-2.0-testing.bk/tools/vnet/vnet-module/Makefile-2.6 2005-01-31
20:38:33.000000000 -0400
+++ xen/tools/vnet/vnet-module/Makefile-2.6 2005-02-09 14:56:55.000000000
-0400
@@ -38,8 +38,8 @@
.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 -ruN xen-2.0-testing.bk/tools/vnet/vnet-module/if_varp.h
xen/tools/vnet/vnet-module/if_varp.h
--- xen-2.0-testing.bk/tools/vnet/vnet-module/if_varp.h 2005-01-31
20:38:33.000000000 -0400
+++ xen/tools/vnet/vnet-module/if_varp.h 2005-02-09 14:03:46.000000000
-0400
@@ -36,7 +36,7 @@
} __attribute__((packed)) VnetMsgHdr;
typedef struct VarpHdr {
- VnetMsgHdr;
+ VnetMsgHdr vnetmsghdr;
uint32_t vnet;
Vmac vmac;
uint32_t addr;
@@ -50,4 +50,4 @@
-#endif /* ! _VNET_IF_VARP_H */
+#endif /* ! _VNET_IF_VARP_H */
diff -ruN xen-2.0-testing.bk/tools/vnet/vnet-module/varp.c
xen/tools/vnet/vnet-module/varp.c
--- xen-2.0-testing.bk/tools/vnet/vnet-module/varp.c 2005-01-31
20:38:33.000000000 -0400
+++ xen/tools/vnet/vnet-module/varp.c 2005-02-09 14:22:47.000000000 -0400
@@ -368,8 +368,8 @@
// 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 @@
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 @@
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 @@
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 -ruN xen-2.0-testing.bk/tools/vnet/vnetd/vcache.c
xen/tools/vnet/vnetd/vcache.c
--- xen-2.0-testing.bk/tools/vnet/vnetd/vcache.c 2005-01-31
20:38:33.000000000 -0400
+++ xen/tools/vnet/vnetd/vcache.c 2005-02-09 14:13:59.000000000 -0400
@@ -102,11 +102,11 @@
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 @@
* @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 @@
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;