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
This commit is contained in:
iap10@freefall.cl.cam.ac.uk committed 2005-02-09 23:23:30 +00:00
1 parent 6be18e86c3
commit 8e5a6833ff
7 files changed
+55 -23

No files matched your search

+1
View File
@@ -556,6 +556,7 @@
41013a83z27rKvWIxAfUBMVZ1eDCDg tools/sv/inc/script.js
40fcefb3zGC9XNBkSwTEobCoq8YClA tools/sv/inc/style.css
41a21888_WlknVWjSxb32Fo13_ujsw tools/vnet/00README
420a9b706I-bN_uPdiy0m3rmDifNNg tools/vnet/INSTALL
41a21888bOiOJc7blzRbe4MNJoaYTw tools/vnet/Makefile
41a21888mg2k5HeiVjlQYEtJBZT4Qg tools/vnet/doc/vnet-module.txt
41a21888cuxfT8wjCdRR6V1lqf5NtA tools/vnet/doc/vnet-xend.txt
+31
View File
@@ -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.
+5 -5
View File
@@ -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
+2 -2
View File
@@ -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:
+2 -2
View File
@@ -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 */
+7 -7
View File
@@ -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:
+7 -7
View File
@@ -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;
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.