[OpenAFS-devel] NAT Patch and bugfix for vlserver

Tommie Gannert d00-tga@d.kth.se
Wed, 26 Apr 2006 17:48:57 +0200 (MEST)


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---559023410-959030623-1146066537=:24279
Content-Type: TEXT/PLAIN; charset=US-ASCII

On Wed, 26 Apr 2006, Jeffrey Hutzelman wrote:

>
>
> On Wednesday, April 26, 2006 05:15:22 PM +0200 Tommie Gannert
> <d00-tga@d.kth.se> wrote:
>
> > Hi!
> >
> > I've been trying to make my behind-NAT AFS-server do backups to
> > a butc-server behind another NAT.
> >
> > That didn't work because the vlserver keeps sending the file servers'
> > first address instead of the one matching the client address. vlnat
> > is a patch against 1.4.0 which
> >
> >  1) Makes vlserver choose the best fs-address based on the number of
> >     common address-bits of the RX-client.
>
> Huh?  The modern vlserver interfaces return _all_ the addresses of a
> server, not just one.  The decision of which address to use should be up to
> the client, which is in a better position to make a decision.  It's
> possible that the backup system is still using ancient interfaces that
> refer to fileservers by a single address instead of by UUID; if so, the
> right long-term fix is to make it use the modern interfaces.

First, I'm using 1.4.0 so far. Migrating to 1.4.1 shortly.

Ok, does this have to do with the three variants of

  vlentry_to_{,u,n}vldbentry()

in vlprocs.c? But how do i get 'vos listvldb' to list more than one
address, for instance?

If I remember correctly, buserver sends an address. One address. It
seems like a small performance gain, though. butc could be doing the
VLDB lookups in all passes.

I'm not sure if the clients are better off making the decision,
though. If they are behind NAT with the same subnet as the server,
things will get messy. The idea of using common address bits means
it will resort to global address space pretty easily. However, it's
a hack, yes.

Anyway, I don't like butc at all, so maybe I'll just make a new
generation...


> Yup, that's a bug.  You should send it to openafs-bugs.  Including a patch
> wouldn't hurt, but also shouldn't strictly be necessary in this case, since
> the fix is so obvious.
>

Yeah, and if I had remembered to include the patches... ;)
They'll go to openafs-bugs.

> > (Isn't anyone else using "-syslog"?)
>
> Yes; we've been using -syslog in production for quite a long time.  I bet
> not too many people use -rxmaxmtu, though, and this bug should be very
> unlikely to affect people who don't.
>

Actually it affects any command line parameter which is strcmp-parsed
after '-rxmaxmtu' (which was placed in the middle of the list). It
says

  if (!strcmp(argv[i], "-rxmaxmtu")) ...


Regards,
Tommie Gannert
---559023410-959030623-1146066537=:24279
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="vlnat-1.4.0.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.4.58.0604261748570.24279@my.nada.kth.se>
Content-Description: 
Content-Disposition: attachment; filename="vlnat-1.4.0.patch"

LS0tIG9wZW5hZnMtMS40LjAvc3JjL3Zsc2VydmVyL3ZscHJvY3MuYwkyMDA1
LTA2LTIxIDIyOjE5OjI5LjAwMDAwMDAwMCArMDIwMA0KKysrIG9wZW5hZnMt
MS40LjAtdmxuYXQvc3JjL3Zsc2VydmVyL3ZscHJvY3MuYwkyMDA2LTA0LTAz
IDIyOjMyOjU4LjAwMDAwMDAwMCArMDIwMA0KQEAgLTQyOSwxMSArNDI5LDEx
IEBADQogICAgIH0NCiAgICAgLyogQ29udmVydCBmcm9tIHRoZSBpbnRlcm5h
bCB0byBleHRlcm5hbCBmb3JtICovDQogICAgIGlmIChuZXcgPT0gMSkNCi0J
dmxlbnRyeV90b19udmxkYmVudHJ5KCZ0ZW50cnksIChzdHJ1Y3QgbnZsZGJl
bnRyeSAqKWFlbnRyeSk7DQorCXZsZW50cnlfdG9fbnZsZGJlbnRyeSgmdGVu
dHJ5LCAoc3RydWN0IG52bGRiZW50cnkgKilhZW50cnksIHJ4Y2FsbC0+Y29u
bi0+cGVlci0+aG9zdCk7DQogICAgIGVsc2UgaWYgKG5ldyA9PSAyKQ0KLQl2
bGVudHJ5X3RvX3V2bGRiZW50cnkoJnRlbnRyeSwgKHN0cnVjdCB1dmxkYmVu
dHJ5ICopYWVudHJ5KTsNCisJdmxlbnRyeV90b191dmxkYmVudHJ5KCZ0ZW50
cnksIChzdHJ1Y3QgdXZsZGJlbnRyeSAqKWFlbnRyeSwgcnhjYWxsLT5jb25u
LT5wZWVyLT5ob3N0KTsNCiAgICAgZWxzZQ0KLQl2bGVudHJ5X3RvX3ZsZGJl
bnRyeSgmdGVudHJ5LCAoc3RydWN0IHZsZGJlbnRyeSAqKWFlbnRyeSk7DQor
CXZsZW50cnlfdG9fdmxkYmVudHJ5KCZ0ZW50cnksIChzdHJ1Y3QgdmxkYmVu
dHJ5ICopYWVudHJ5LCByeGNhbGwtPmNvbm4tPnBlZXItPmhvc3QpOw0KICAg
ICByZXR1cm4gKHViaWtfRW5kVHJhbnModHJhbnMpKTsNCiB9DQogDQpAQCAt
Mjg4NywxMSArMjg4NywxMDcgQEANCiB9DQogDQogDQorLyogQ291bnQgdGhl
IG51bWJlciBvZiBjb21tb24gYml0cyBpbiBBIGFuZCBCLiBUaGV5IGFyZSBh
c3N1bWVkIHRvIGJlIElQIGFkZHJlc3NlcyBpbiBuZXR3b3JrIGJ5dGUgb3Jk
ZXIuICovDQorc3RhdGljIGludA0KK0NvdW50Q29tbW9uQWRkcmVzc0JpdHMo
QSwgQikNCisgICAgYWZzX3VpbnQzMiBBOw0KKyAgICBhZnNfdWludDMyIEI7
DQorew0KKyAgICBpbnQgaTsNCisgICAgDQorICAgIGZvciAoaSA9IDA7IGkg
PCBzaXplb2YoQSkgKiA4OyArK2kpIHsNCisJaWYgKChBICYgMSkgIT0gKEIg
JiAxKSkNCisJICAgIGJyZWFrOw0KKwkNCisJQSA+Pj0gMTsNCisJQiA+Pj0g
MTsNCisgICAgfQ0KKyAgICANCisgICAgcmV0dXJuIGk7DQorfQ0KKw0KKw0K
Ky8qDQorICogUmV0dXJuIGFuIGludGVnZXIgZGVzY3JpYmluZyB0aGUgSVAg
Y2xhc3MuIDAgaXMgdGhlIHB1YmxpYyBhZGRyZXNzIHNwYWNlLg0KKyAqLw0K
K3N0YXRpYyBpbnQNCitHZXRBZGRyZXNzQ2xhc3MoQWRkcikNCisgICAgYWZz
X3VpbnQzMiBBZGRyOw0KK3sNCisgICAgaWYgKChBZGRyICYgMHgwMDAwMDA4
MCkgPT0gMHgwMDAwMDAwMCkgcmV0dXJuIDE7DQorICAgIGlmICgoQWRkciAm
IDB4MDAwMDAwQzApID09IDB4MDAwMDAwODApIHJldHVybiAyOw0KKyAgICBp
ZiAoKEFkZHIgJiAweDAwMDAwMEUwKSA9PSAweDAwMDAwMEMwKSByZXR1cm4g
MzsNCisgICAgaWYgKChBZGRyICYgMHgwMDAwMDBGMCkgPT0gMHgwMDAwMDBF
MCkgcmV0dXJuIDQ7DQorICAgIA0KKyAgICByZXR1cm4gMDsNCit9DQorDQor
DQorLyogUmV0dXJuID4wIGlmIEFkZHIgaXMgYSAiYmV0dGVyIiBtYXRjaCB0
byBNYXNrIHRoYW4gaXMgQmVzdC4NCisgKiBUaGlzIGlzIHByZXR0eSBoYXJk
IGNvZGVkLiBUd28gbWFqb3IgY2xhc3NlcyBvZiBhZGRyZXNzZXMgZXhpc3Q6
DQorICogICBQcml2YXRlICAgSVAtY2xhc3MgQS1EDQorICogICBQdWJsaWMg
ICAgYW55dGhpbmcgZWxzZQ0KKyAqDQorICogVGhlIGxvZ2ljIHNob3VsZCBi
ZSBhY2NvcmRpbmcgdG8gdGhpcyB0YWJsZSwgd2hlcmUgQSwgTSwgQiBhcmUg
dGhlDQorICogZnVuY3Rpb24gcGFyYW1ldGVycy4gYSwgYiwgYXJlIGRpc3Rp
bmN0IHByaXZhdGUgY2xhc3NlcywgYW5kIHAgaXMgdGhlDQorICogcHVibGlj
IGNsYXNzLg0KKyAqDQorICogQSBNIEIgUmVzdWx0ICAgICAgICAgICAgICAg
Q29uZGl0aW9uDQorICogICAgICAgQ0MoQSwgTSkgPiBDQyhCLCBNKSAgQSA9
PSBCDQorICogcCBwIHANCisgKiBwIGEgcA0KKyAqIGEgcCBhICoqDQorICog
YSBiIGEgKioNCisgKiBhIGEgYQ0KKyAqDQorICogICAgICAgdHJ1ZSAgICAg
ICAgICAgICAgICAgQSA9PSBNICgmJiBCICE9IE0pIHx8IEIgIT0gTSAmJiBC
ID09IHANCisgKiBwIHAgYQ0KKyAqIGEgYSBwDQorICogYSBhIGINCisgKiBh
IGIgcA0KKyAqDQorICogICAgICAgZmFsc2UgICAgICAgICAgICAgICAgQiA9
PSBNICgmJiBBICE9IE0pIHx8IEEgIT0gTSAmJiBBID09IHANCisgKiBwIGEg
YQ0KKyAqIGEgcCBwDQorICogYSBiIGINCisgKiBwIGEgYg0KKyAqIGEgcCBi
ICoqDQorICoNCisgKiAgKiogIGRvbid0IGNhcmUgKGVxdWFsbHkgYmFkIGRl
Y2lzaW9uKQ0KKyAqICAgICAgVGhlIGRvbid0IGNhcmVzIGhhdmUgYmVlbiBp
bmNvcnBvcmF0ZWQgaW50byB0aGUgb3RoZXIgY2F0ZWdvcmllcyB0bw0KKyAq
ICAgICAgc2F2ZSBzb21lIGNvZGUsIGdlbmVyYWxpemluZyB0aGUgZXhwcmVz
c2lvbnMgc29tZXdoYXQuDQorICoNCisgKiBBY2NvcmRpbmcgdG8gbXkgY2Fs
Y3VsYXRpb25zIGEgZnVsbCB0YWJsZSBvZiB0aHJlZSBBQlAgc2hvdWxkIGNv
bnRhaW4NCisgKiAzXjMgPSAyNyBlbnRyaWVzLiBTaW5jZSBBLCBhbmQgQiBh
cmUganVzdCBkaXN0aW5jdCBwbGFjZWhvbGRlcnMsIHRoZXkNCisgKiBjb3Vs
ZCBiZSBzd2FwcGVkLiBUaGlzIGVsaW1pbmF0ZXMgaGFsZiBvZiB0aGUgdGFi
bGUgKGV4Y2VwdCB0aGUgUCBQIFAgY2FzZQ0KKyAqIGlzIHNlcGFyYXRlKS4g
VGhpcyBsZWF2ZXMgKDNeMyAtIDEpIC8gMiArIDEgPSAxNCBlbnRyaWVzLg0K
KyAqLw0KK3N0YXRpYyBpbnQNCitBZGRyZXNzSXNUaWdodGVyTWF0Y2goQWRk
ciwgTWFzaywgQmVzdCkNCisgICAgYWZzX3VpbnQzMiBBZGRyOw0KKyAgICBh
ZnNfdWludDMyIE1hc2s7DQorICAgIGFmc191aW50MzIgQmVzdDsNCit7DQor
ICAgIGludCBhZGRyQ2xhc3MgPSBHZXRBZGRyZXNzQ2xhc3MoQWRkcik7DQor
ICAgIGludCBtYXNrQ2xhc3MgPSBHZXRBZGRyZXNzQ2xhc3MoTWFzayk7DQor
ICAgIGludCBiZXN0Q2xhc3MgPSBHZXRBZGRyZXNzQ2xhc3MoQmVzdCk7DQor
ICAgIA0KKyAgICBpZiAoYWRkckNsYXNzID09IGJlc3RDbGFzcykNCisJcmV0
dXJuIENvdW50Q29tbW9uQWRkcmVzc0JpdHMoQWRkciwgTWFzaykgPiBDb3Vu
dENvbW1vbkFkZHJlc3NCaXRzKEJlc3QsIE1hc2spOw0KKyAgICANCisgICAg
aWYgKGFkZHJDbGFzcyA9PSBtYXNrQ2xhc3MgfHwgYmVzdENsYXNzICE9IG1h
c2tDbGFzcyAmJiBiZXN0Q2xhc3MgPT0gMCkNCisJcmV0dXJuIDE7DQorICAg
IA0KKyAgICByZXR1cm4gMDsNCit9DQorDQorDQogLyogQ29udmVydCBmcm9t
IHRoZSBpbnRlcm5hbCAoY29tcGFjdGVkKSB2bGRiIGVudHJ5IHRvIHRoZSBl
eHRlcm5hbCByZXByZXNlbnRhdGlvbiB1c2VkIGJ5IHRoZSBpbnRlcmZhY2Uu
ICovDQogc3RhdGljDQotdmxlbnRyeV90b192bGRiZW50cnkoVmxFbnRyeSwg
VmxkYkVudHJ5KQ0KK3ZsZW50cnlfdG9fdmxkYmVudHJ5KFZsRW50cnksIFZs
ZGJFbnRyeSwgaG9zdCkNCiAgICAgIHN0cnVjdCBudmxlbnRyeSAqVmxFbnRy
eTsNCiAgICAgIHN0cnVjdCB2bGRiZW50cnkgKlZsZGJFbnRyeTsNCisgICAg
IGFmc191aW50MzIgaG9zdDsNCiB7DQogICAgIGludCBpLCBqOw0KIA0KQEAg
LTI5MDMsMTggKzI5OTksMjAgQEANCiAJaWYgKChIb3N0QWRkcmVzc1tqID0g
VmxFbnRyeS0+c2VydmVyTnVtYmVyW2ldXSAmIDB4ZmYwMDAwMDApID09DQog
CSAgICAweGZmMDAwMDAwKSB7DQogCSAgICBzdHJ1Y3QgZXh0ZW50YWRkciAq
ZXhwOw0KLQkgICAgaW50IGJhc2UsIGluZGV4Ow0KKwkgICAgaW50IGJhc2Us
IGluZGV4LCBiZXN0ID0gLTE7DQogDQogCSAgICBiYXNlID0gKEhvc3RBZGRy
ZXNzW2pdID4+IDE2KSAmIDB4ZmY7DQogCSAgICBpbmRleCA9IEhvc3RBZGRy
ZXNzW2pdICYgMHgwMDAwZmZmZjsNCiAJICAgIGV4cCA9ICZleF9hZGRyW2Jh
c2VdW2luZGV4XTsNCi0JICAgIC8qIEZvciBub3cgcmV0dXJuIHRoZSBmaXJz
dCBpcCBhZGRyZXNzIGJhY2sgKi8NCiAJICAgIGZvciAoaiA9IDA7IGogPCBW
TF9NQVhJUEFERFJTX1BFUk1IOyBqKyspIHsNCiAJCWlmIChleHAtPmV4X2Fk
ZHJzW2pdKSB7DQotCQkgICAgVmxkYkVudHJ5LT5zZXJ2ZXJOdW1iZXJbaV0g
PSBudG9obChleHAtPmV4X2FkZHJzW2pdKTsNCi0JCSAgICBicmVhazsNCisJ
CSAgICBpZiAoYmVzdCA8IDAgfHwgQWRkcmVzc0lzVGlnaHRlck1hdGNoKGV4
cC0+ZXhfYWRkcnNbal0sIGhvc3QsIGV4cC0+ZXhfYWRkcnNbYmVzdF0pKQ0K
KwkJICAgIAliZXN0ID0gajsNCiAJCX0NCiAJICAgIH0NCisJICAgIA0KKwkg
ICAgaWYgKGJlc3QgPj0gMCkNCisJCVZsZGJFbnRyeS0+c2VydmVyTnVtYmVy
W2ldID0gbnRvaGwoZXhwLT5leF9hZGRyc1tiZXN0XSk7DQogCX0gZWxzZQ0K
IAkgICAgVmxkYkVudHJ5LT5zZXJ2ZXJOdW1iZXJbaV0gPQ0KIAkJSG9zdEFk
ZHJlc3NbVmxFbnRyeS0+c2VydmVyTnVtYmVyW2ldXTsNCkBAIC0yOTMxLDkg
KzMwMjksMTAgQEANCiANCiAvKiBDb252ZXJ0IGZyb20gdGhlIGludGVybmFs
IChjb21wYWN0ZWQpIHZsZGIgZW50cnkgdG8gdGhlIGV4dGVybmFsIHJlcHJl
c2VudGF0aW9uIHVzZWQgYnkgdGhlIGludGVyZmFjZS4gKi8NCiBzdGF0aWMN
Ci12bGVudHJ5X3RvX252bGRiZW50cnkoVmxFbnRyeSwgVmxkYkVudHJ5KQ0K
K3ZsZW50cnlfdG9fbnZsZGJlbnRyeShWbEVudHJ5LCBWbGRiRW50cnksIGhv
c3QpDQogICAgICBzdHJ1Y3QgbnZsZW50cnkgKlZsRW50cnk7DQogICAgICBz
dHJ1Y3QgbnZsZGJlbnRyeSAqVmxkYkVudHJ5Ow0KKyAgICAgYWZzX3VpbnQz
MiBob3N0Ow0KIHsNCiAgICAgaW50IGksIGo7DQogDQpAQCAtMjk0NSwxOCAr
MzA0NCwyMCBAQA0KIAlpZiAoKEhvc3RBZGRyZXNzW2ogPSBWbEVudHJ5LT5z
ZXJ2ZXJOdW1iZXJbaV1dICYgMHhmZjAwMDAwMCkgPT0NCiAJICAgIDB4ZmYw
MDAwMDApIHsNCiAJICAgIHN0cnVjdCBleHRlbnRhZGRyICpleHA7DQotCSAg
ICBpbnQgYmFzZSwgaW5kZXg7DQorCSAgICBpbnQgYmFzZSwgaW5kZXgsIGJl
c3QgPSAtMTsNCiANCiAJICAgIGJhc2UgPSAoSG9zdEFkZHJlc3Nbal0gPj4g
MTYpICYgMHhmZjsNCiAJICAgIGluZGV4ID0gSG9zdEFkZHJlc3Nbal0gJiAw
eDAwMDBmZmZmOw0KIAkgICAgZXhwID0gJmV4X2FkZHJbYmFzZV1baW5kZXhd
Ow0KLQkgICAgLyogRm9yIG5vdyByZXR1cm4gdGhlIGZpcnN0IGlwIGFkZHJl
c3MgYmFjayAqLw0KIAkgICAgZm9yIChqID0gMDsgaiA8IFZMX01BWElQQURE
UlNfUEVSTUg7IGorKykgew0KIAkJaWYgKGV4cC0+ZXhfYWRkcnNbal0pIHsN
Ci0JCSAgICBWbGRiRW50cnktPnNlcnZlck51bWJlcltpXSA9IG50b2hsKGV4
cC0+ZXhfYWRkcnNbal0pOw0KLQkJICAgIGJyZWFrOw0KKwkJICAgIGlmIChi
ZXN0IDwgMCB8fCBBZGRyZXNzSXNUaWdodGVyTWF0Y2goZXhwLT5leF9hZGRy
c1tqXSwgaG9zdCwgZXhwLT5leF9hZGRyc1tiZXN0XSkpDQorCQkgICAgCWJl
c3QgPSBqOw0KIAkJfQ0KIAkgICAgfQ0KKwkgICAgDQorCSAgICBpZiAoYmVz
dCA+PSAwKQ0KKwkJVmxkYkVudHJ5LT5zZXJ2ZXJOdW1iZXJbaV0gPSBudG9o
bChleHAtPmV4X2FkZHJzW2Jlc3RdKTsNCiAJfSBlbHNlDQogCSAgICBWbGRi
RW50cnktPnNlcnZlck51bWJlcltpXSA9DQogCQlIb3N0QWRkcmVzc1tWbEVu
dHJ5LT5zZXJ2ZXJOdW1iZXJbaV1dOw0KQEAgLTI5NzEsOSArMzA3MiwxMCBA
QA0KIH0NCiANCiBzdGF0aWMNCi12bGVudHJ5X3RvX3V2bGRiZW50cnkoVmxF
bnRyeSwgVmxkYkVudHJ5KQ0KK3ZsZW50cnlfdG9fdXZsZGJlbnRyeShWbEVu
dHJ5LCBWbGRiRW50cnksIGhvc3QpDQogICAgICBzdHJ1Y3QgbnZsZW50cnkg
KlZsRW50cnk7DQogICAgICBzdHJ1Y3QgdXZsZGJlbnRyeSAqVmxkYkVudHJ5
Ow0KKyAgICAgYWZzX3VpbnQzMiBob3N0Ow0KIHsNCiAgICAgaW50IGksIGo7
DQogDQotLS0gb3BlbmFmcy0xLjQuMC9zcmMvYnV0Yy9kdW1wLmMJMjAwNS0w
NC0wMyAyMDoxNTo0NS4wMDAwMDAwMDAgKzAyMDANCisrKyBvcGVuYWZzLTEu
NC4wLXZsbmF0L3NyYy9idXRjL2R1bXAuYwkyMDA2LTA0LTA0IDEwOjQzOjU1
LjAwMDAwMDAwMCArMDIwMA0KQEAgLTg2OSw5ICs4NjksOSBAQA0KIAkvKiBE
ZXRlcm1pbmUgbG9jYXRpb24gb2YgdGhlIHZvbHVtZS4NCiAJICogSW4gY2Fz
ZSB0aGUgdm9sdW1lIG1vdmVkIGhhcyBtb3ZlZC4NCiAJICovDQotCWlmIChw
YXNzTnVtYmVyID4gMSkgewkvKnBhc3MgKi8NCisJaWYgKHBhc3NOdW1iZXIg
PiAwKSB7CS8qcGFzcyAqLw0KIAkgICAgdGNvZGUgPQ0KLQkJYmNfR2V0RW50
cnlCeUlEKGNzdHJ1Y3QsIGN1ckR1bXAtPnZpZCwgY3VyRHVtcC0+dnR5cGUs
DQorCQl1YmlrX0NhbGwoVkxfR2V0RW50cnlCeUlELCBjc3RydWN0LCAwLCBj
dXJEdW1wLT52aWQsIGN1ckR1bXAtPnZ0eXBlLA0KIAkJCQkmdmxkYkVudHJ5
KTsNCiAJICAgIGlmICh0Y29kZSkgew0KIAkJRXJyb3JMb2coMCwgdGFza0lk
LCB0Y29kZSwgMCwNCg==

---559023410-959030623-1146066537=:24279--