From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57332) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WKsWH-0007sS-W3 for Qemu-devel@nongnu.org; Tue, 04 Mar 2014 11:48:48 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WKsWA-0003hr-Oa for Qemu-devel@nongnu.org; Tue, 04 Mar 2014 11:48:41 -0500 Received: from rcdn-iport-2.cisco.com ([173.37.86.73]:19822) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WKsWA-0003gb-7v for Qemu-devel@nongnu.org; Tue, 04 Mar 2014 11:48:34 -0500 From: "Anton Ivanov (antivano)" Date: Tue, 4 Mar 2014 16:48:32 +0000 Message-ID: <531603DE.2010400@cisco.com> References: <5310489A.4060501@cisco.com> <53105EB0.3060702@redhat.com> <5315EEFE.6060605@cisco.com> <53160065.50908@redhat.com> In-Reply-To: <53160065.50908@redhat.com> Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: <66030F8B26FB214A96DFBBB9DE488E70@emea.cisco.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [Qemu-devel] Contribution - L2TPv3 transport List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eric Blake Cc: Paolo Bonzini , "Qemu-devel@nongnu.org" , Stefan Hajnoczi T24gMDQvMDMvMTQgMTY6MzMsIEVyaWMgQmxha2Ugd3JvdGU6DQo+DQo+ICsNCj4gKw0KPiArI2Rl ZmluZSBQQUdFX1NJWkUgNDA5Ng0KPiBPbmUgb2YgeW91ciBlYXJsaWVyIHJldmlldyBjb21tZW50 cyBzdWdnZXN0ZWQgdXNpbmcgc3lzY29uZiBvciBlbHNlDQo+IHJlbmFtaW5nIHRoaXMsIGFzIG5v dCBhbGwgc3lzdGVtcyBoYXZlIGEgcGFnZSBzaXplIG9mIDQwOTYuDQoNCk9LLg0KDQo+DQo+PiAr I2RlZmluZSBJT1ZTSVpFIDINCj4+ICsjZGVmaW5lIE1BWF9MMlRQVjNfTVNHQ05UIDMyDQo+PiAr I2RlZmluZSBNQVhfTDJUUFYzX0lPVkNOVCAoTUFYX0wyVFBWM19NU0dDTlQgKiBJT1ZTSVpFKQ0K Pj4gKw0KPj4gKyNpZm5kZWYgSVBQUk9UT19MMlRQDQo+PiArI2RlZmluZSBJUFBST1RPX0wyVFAg MHg3Mw0KPj4gKyNlbmRpZg0KPj4gKw0KPj4gK3R5cGVkZWYgc3RydWN0IE5ldEwyVFBWM1N0YXRl IHsNCj4+ICsgICAgTmV0Q2xpZW50U3RhdGUgbmM7DQo+PiArICAgIGludCBmZDsNCj4+ICsgICAg aW50IHN0YXRlOw0KPj4gKyAgICB1bnNpZ25lZCBpbnQgaW5kZXg7DQo+PiArICAgIHVuc2lnbmVk IGludCBwYWNrZXRfbGVuOw0KPj4gKw0KPj4gKyAgICAvKg0KPj4gKyAgICAgKgl0aGVzZSBhcmUg dXNlZCBmb3IgeG1pdCAtIHRoYXQgaGFwcGVucyBwYWNrZXQgYSB0aW1lDQo+PiArICAgICAqCWFu ZCBmb3IgZmlyc3Qgc2lnbiBvZiBsaWZlIHBhY2tldCAoZWFzaWVyIHRvIHBhcnNlIHRoYXQgb25j ZSkNCj4+ICsgICAgICovDQo+PiArDQo+PiArICAgIHVpbnQ4X3QgKiBoZWFkZXJfYnVmOw0KPiBN b3N0IGNvZGUgdXNlcyB0aGlzIHN0eWxlOg0KPg0KPiB1aW50OF90ICpoZWFkZXJfYnVmOw0KPg0K PiB3aXRoIG5vIHNwYWNlIGJldHdlZW4gYSBwb2ludGVyIGRlc2lnbmF0aW9uIGFuZCB0aGUgdmFy aWFibGUgbmFtZSBpdA0KPiBhcHBsaWVzIHRvIChzZXZlcmFsIGluc3RhbmNlcyBpbiB5b3VyIHBh dGNoKS4NCg0KT0ssIHdpbGwgZml4Lg0KDQo+DQo+PiArDQo+PiArICAgIC8qDQo+PiArICAgICAq IEJpdG1hc2sgbW9kZSBkZXRlcm1pbmluZyBlbmNhcHMgYmVoYXZpb3VyDQo+PiArICAgICAqLw0K Pj4gKw0KPj4gKyAgICB1aW50MzJfdCBvZmZzZXQ7DQo+PiArICAgIHVpbnQzMl90IGNvb2tpZV9v ZmZzZXQ7DQo+PiArICAgIHVpbnQzMl90IGNvdW50ZXJfb2Zmc2V0Ow0KPj4gKyAgICB1aW50MzJf dCBzZXNzaW9uX29mZnNldDsNCj4gQ29tbWVudCBpcyBvZmYsIGFzIHRoZXJlIGlzIG5vIGJpdG1h c2sgaGVyZS4NCg0KRm9yZ290IHRvIGNsZWFuIGl0IDopDQoNCj4NCj4+ICtzdGF0aWMgaW50IGwy dHB2M19mb3JtX2hlYWRlcihOZXRMMlRQVjNTdGF0ZSAqcykgew0KPj4gKyAgICB1aW50MzJfdCAq aGVhZGVyOw0KPj4gKyAgICB1aW50MzJfdCAqc2Vzc2lvbjsNCj4+ICsgICAgdWludDY0X3QgKmNv b2tpZTY0Ow0KPj4gKyAgICB1aW50MzJfdCAqY29va2llMzI7DQo+PiArICAgIHVpbnQzMl90ICpj b3VudGVyOw0KPj4gKw0KPj4gKyAgICBpZiAocy0+dWRwID09IFRSVUUpIHsNCj4gV2UgcmVxdWly ZSBhIEM5OSBjb21waWxlcjsgdXNlICd0cnVlJyBub3QgJ1RSVUUnIChnbGliJ3MgVFJVRSBjYXRl cnMNCj4gbWFpbmx5IHRvIEM4OSBjb21waWxlcnMsIGFuZCBpc24ndCBuZWNlc3NhcmlseSBhIHRy dWUgYm9vbGVhbikuICBGb3INCj4gdGhhdCBtYXR0ZXIsIGNvbXBhcmlzb24gYWdhaW5zdCB0cnVl IG9yIGZhbHNlIGlzIHZlcmJvc2U7IGl0J3MgZmluZSB0bw0KPiBqdXN0IHVzZToNCj4NCj4gaWYg KHMtPnVkcCkgew0KDQpPSy4NCg0KPg0KPj4gKwloZWFkZXIgPSAodWludDMyX3QgKikgcy0+aGVh ZGVyX2J1ZjsNCj4+ICsJc3RsX2JlX3AoaGVhZGVyLCAweDMwMDAwKTsNCj4+ICsgICAgfQ0KPj4g KyAgICBzZXNzaW9uID0gKHVpbnQzMl90ICopIChzLT5oZWFkZXJfYnVmICsgcy0+c2Vzc2lvbl9v ZmZzZXQpOw0KPj4gKyAgICBzdGxfYmVfcChzZXNzaW9uLCBzLT50eF9zZXNzaW9uKTsNCj4+ICsN Cj4+ICsgICAgaWYgKHMtPmNvb2tpZSA9PSBUUlVFICkgew0KPj4gKwlpZiAocy0+Y29va2llX2lz XzY0ID09IFRSVUUpIHsNCj4gTW9yZSBjYXNlcyBvZiBUUlVFIHRoYXQgc2hvdWxkIGJlIGZpeGVk LiAgQWxzbywgbm8gc3BhY2UgYmVmb3JlICkuDQo+DQo+DQo+PiArICAgIGlmIChzLT5ub2NvdW50 ZXIgPT0gRkFMU0UpIHsNCj4+ICsJY291bnRlciA9ICh1aW50MzJfdCAqKShzLT5oZWFkZXJfYnVm ICsgcy0+Y291bnRlcl9vZmZzZXQpOw0KPj4gKwlzdGxfYmVfcChjb3VudGVyLCArKyBzLT5jb3Vu dGVyKTsNCj4+ICsgICAgfQ0KPiBUQUIgZGFtYWdlIC0gd2UgaW5kZW50IHdpdGggc3BhY2VzLiAg Tm8gc3BhY2UgYWZ0ZXIgcHJlaW5jcmVtZW50ICsrLg0KPg0KPj4gKyAgICByZXR1cm4gMDsNCj4+ ICt9DQo+PiArDQo+PiArc3RhdGljIHNzaXplX3QgbmV0X2wydHB2M19yZWNlaXZlX2RncmFtX2lv dihOZXRDbGllbnRTdGF0ZSAqbmMsIGNvbnN0IHN0cnVjdCBpb3ZlYyAqaW92LCBpbnQgaW92Y250 KQ0KPiBMb25nIGxpbmU7IHlvdSBjYW4gc3BsaXQgYWZ0ZXIgLCB0byBmaXQgd2l0aGluIDgwIGNv bHVtbnMuDQoNCk9LDQo+DQo+PiArew0KPj4gKyAgICBOZXRMMlRQVjNTdGF0ZSAqcyA9IERPX1VQ Q0FTVChOZXRMMlRQVjNTdGF0ZSwgbmMsIG5jKTsNCj4+ICsNCj4+ICsgICAgc3RydWN0IG1zZ2hk ciBtZXNzYWdlOw0KPj4gKyAgICBpbnQgcmV0Ow0KPj4gKw0KPj4gKyAgICBpZiAoaW92Y250ID4g TUFYX0wyVFBWM19JT1ZDTlQgLSAxKSB7DQo+PiArCWZwcmludGYoc3RkZXJyLCAiaW92ZWMgdG9v IGxvbmcgJWQgPiAlZCwgY2hhbmdlIGwydHB2My5oXG4iLCBpb3ZjbnQsIE1BWF9MMlRQVjNfSU9W Q05UKTsNCj4+ICsJcmV0dXJuIC0xOw0KPiBJcyBwcmludGluZyB0byBzdGRlcnIgYWx3YXlzIHRo ZSByaWdodCB0aGluZyB0byBkbz8gIEl0IHNlZW1zIHRvIG1lIHRoYXQNCj4geW91IHNob3VsZCBs b29rIGludG8gdXNpbmcgUUVycm9yLg0KDQpUaGFua3MsIHdpbGwgbG9vayBpbnRvIGl0Lg0KDQo+ DQo+PiArICAgIGlmIChyZXQgPCAwKSB7DQo+PiArCXJldCA9IC0gZXJybm87DQo+PiArICAgIH0g ZWxzZSBpZiAocmV0ID09IDApIHsNCj4+ICsJcmV0ID0gaW92X3NpemUgKGlvdiwgaW92Y250KTsN Cj4gTm8gc3BhY2UgYmVmb3JlICggaW4gZnVuY3Rpb24gY2FsbHMuDQo+DQo+DQo+PiArICAgIHZl YysrOw0KPj4gKyAgICB2ZWMtPmlvdl9iYXNlID0gKHZvaWQgKikgYnVmOw0KPiBUaGlzIGlzIEMs IG5vdCBDKysgLSBubyBuZWVkIHRvIGNhc3QgdG8gKHZvaWQqKS4NCg0KDQoNCj4NCj4+ICsgICAg aWYgKHJldCA8IDApIHsNCj4+ICsJcmV0ID0gLSBlcnJubzsNCj4gTm8gc3BhY2UgYWZ0ZXIgdW5h cnkgJy0nLg0KPg0KPj4gKyAgICB9IGVsc2UgaWYgKHJldCA9PSAwKSB7DQo+PiArCXJldCA9IHNp emU7DQo+PiArICAgIH0gZWxzZSB7DQo+PiArCXJldCA9LSBzLT5vZmZzZXQ7DQo+IFRyYWlsaW5n IHdoaXRlc3BhY2UuICBQbGVhc2UgcnVuIHlvdXIgc3VibWlzc2lvbiB0aHJvdWdoDQo+IHNjcmlw dHMvY2hlY2twYXRjaC5wbCwgYW5kIGFkZHJlc3MgYWxsIHdhcm5pbmdzLg0KPg0KPiAnPS0nIGxv b2tzIG9kZDsgZGlkIHlvdSBtZWFuICc9IC0nPw0KDQpyZXQgLSBzLT5vZmZzZXQgLyogeW91IG5l ZWQgdG8gYWRqdXN0IHRoZSByZXQgc28gdGhhdCBpdCByZWZsZWN0cyB0aGUgDQpkYXRhIGFuZCBu b3QgZGF0YSArIGhlYWRlciAqLw0KDQo+DQo+DQo+PiArDQo+PiArc3RhdGljIGludCBsMnRwdjNf dmVyaWZ5X2hlYWRlcihOZXRMMlRQVjNTdGF0ZSAqcywgdWludDhfdCAqYnVmKSB7DQo+IE9wZW5p bmcgeyBvbiBpdHMgb3duIGxpbmUuDQo+DQo+PiArDQo+PiArICAgIHVpbnQ2NF90ICpjb29raWU2 NDsNCj4+ICsgICAgdWludDMyX3QgKmNvb2tpZTMyOw0KPj4gKyAgICB1aW50MzJfdCAqc2Vzc2lv bjsNCj4+ICsNCj4+ICsgICAgaWYgKChzLT51ZHAgPT0gRkFMU0UpICYmIChzLT5pcHY2ID09IEZB TFNFKSl7DQo+IFRvbyBtYW55ICgpLCBtaXNzaW5nIHNwYWNlIGJlZm9yZSB7IC0gdGhpcyBzaG91 bGQgYmU6DQo+DQo+IGlmICghcy0+dWRwICYmICFzLT5pcHY2KSB7DQoNCk9LDQoNCj4NCj4+ICsJ YnVmICs9IHNpemVvZihzdHJ1Y3QgaXBoZHIpIC8qIGZpeCBmb3IgaXB2NCByYXcgKi87DQo+PiAr ICAgIH0NCj4+ICsgICAgaWYgKHMtPmNvb2tpZSA9PSBUUlVFKSB7DQo+PiArCWlmIChzLT5jb29r aWVfaXNfNjQgPT0gVFJVRSkgew0KPj4gKwkgICAgLyogNjQgYml0IGNvb2tpZSAqLw0KPj4gKwkg ICAgY29va2llNjQgPSAodWludDY0X3QgKikoYnVmICsgcy0+Y29va2llX29mZnNldCk7DQo+PiAr CSAgICBpZiAoIGxkcV9iZV9wKGNvb2tpZTY0KSAhPSBzLT5yeF9jb29raWUpIHsNCj4+ICsJCWZw cmludGYoc3RkZXJyLCAidW5rbm93biBjb29raWUgaWRcbiIpOw0KPj4gKwkJcmV0dXJuIC0xOyAv KiB3ZSBuZWVkIHRvIHJldHVybiAwLCBvdGhlcndpc2UgYmFyZnVzICovDQo+IFdoYXQncyB1cCB3 aXRoIHRoYXQgY29tbWVudCBiZWluZyBkaWZmZXJlbnQgZnJvbSB0aGUgY29kZT8NCg0KQ2Fycnlv dmVyIGZyb20gVU1MIC0geW91IGhhdmUgZGlmZmVyZW50IHNlbWFudGljcy4gVGhlcmUgeW91IGhh dmUgdG8gDQpyZXR1cm4gMC4NCg0KPg0KPj4gKwkgICAgfQ0KPj4gKwl9IGVsc2Ugew0KPj4gKwkg ICAgY29va2llMzIgPSAodWludDMyX3QgKikoYnVmICsgcy0+Y29va2llX29mZnNldCk7DQo+PiAr CSAgICBpZiAobGRsX2JlX3AoY29va2llMzIpICE9ICogKHVpbnQzMl90ICopICZzLT5yeF9jb29r aWUpIHsNCj4+ICsJCWZwcmludGYoc3RkZXJyLCJ1bmtub3duIGNvb2tpZSBpZFxuIik7DQo+IFNw YWNlIGFmdGVyICcsJy4gIEFnYWluLCBJIHRoaW5rIFFFcnJvciBpcyBiZXR0ZXIgdGhhbiBkaXJl Y3RseSBwcmludGluZw0KPiB0byBzdGRlcnIuDQoNCk9LLg0KDQo+DQo+PiArCQlyZXR1cm4gLTEg OyAvKiB3ZSBuZWVkIHRvIHJldHVybiAwLCBvdGhlcndpc2UgYmFyZnVzICovDQo+PiArCSAgICB9 DQo+PiArCX0NCj4+ICsgICAgfQ0KPj4gKyAgICBzZXNzaW9uID0gKHVpbnQzMl90ICopIChidWYg KyBzLT5zZXNzaW9uX29mZnNldCk7DQo+PiArICAgIGlmIChsZGxfYmVfcChzZXNzaW9uKSAhPSBz LT5yeF9zZXNzaW9uKSB7DQo+IEFyZSB5b3Ugcmlza2luZyBidXMgZXJyb3JzIG9uIHBsYXRmb3Jt cyB3aGVyZSB5b3UgY2Fubm90IGRlcmVmZXJlbmNlIGENCj4gd2lkZSBpbnQgcG9pbnRlciB0aGF0 IGdldHMgc2V0IHRvIGEgbWlzYWxpZ25lZCBvZmZzZXQ/DQoNCk1heWJlIC0gSSBhbSBub3Qgb24g c3VjaCBhIHBsYXRmb3JtIHNvIGl0IGlzIHZlcnkgZGlmZmljdWx0IGZvciBtZSB0byANCmFzc2Vz cyB0aGUgaW1wYWN0IG9mIHRoaXMuDQoNCj4NCj4+ICsgICAgbXNndmVjID0gcy0+bXNndmVjOw0K Pj4gKyAgICBvZmZzZXQgPSBzLT5vZmZzZXQ7DQo+PiArICAgIGlmICgocy0+dWRwID09IEZBTFNF KSAmJiAocy0+aXB2NiA9PSBGQUxTRSkpew0KPj4gKwlvZmZzZXQgKz0gICBzaXplb2Yoc3RydWN0 IGlwaGRyKTsNCj4+ICsgICAgfQ0KPiBXaGl0ZXNwYWNlIGRhbWFnZS4NCj4NCj4+ICsgICAgY291 bnQgPSByZWN2bW1zZyhzLT5mZCwgbXNndmVjLCBNQVhfTDJUUFYzX01TR0NOVCwgTVNHX0RPTlRX QUlULCBOVUxMKTsNCj4+ICsgICAgZm9yIChpPTA7aTxjb3VudDtpKyspIHsNCj4gU2hvdWxkIGJl Og0KPg0KPiBmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykgew0KPg0KPiBMb3RzIG9mIG90aGVy IHNpdGVzIG5lZWQgc2ltaWxhciBmaXhlcy4NCj4NCj4NCj4+ICsNCj4+ICsgICAgaWYgKChnZXRh ZGRyaW5mbyhsMnRwdjMtPnNyYywgc3JjcG9ydCwgJmhpbnRzLCAmcmVzdWx0KSAhPTApIHx8IChy ZXN1bHQgPT0gTlVMTCkpIHsNCj4+ICsJZmQgPSAtZXJybm87DQo+PiArCWZwcmludGYoc3RkZXJy LCAibDJ0cHYzX29wZW4gOiBjb3VsZCBub3QgcmVzb2x2ZSBzcmMsICIgImVycm5vID0gJWRcbiIs IGZkKTsNCj4gV2hhdCdzIHVwIHdpdGggdGhlIHN0cmluZyBjb25jYXRlbmF0aW9uIGluIHRoZSBm b3JtYXQgc3RyaW5nPw0KDQpPbmNlIHVwb24gYSB0aW1lIGl0IHdhcyBvbiB0d28gbGluZXMgOikN Cg0KPg0KPiBnZXRhZGRyaW5mbygpIGRvZXMgTk9UIHNldCBlcnJuby4gIFJhdGhlciwgaXQgcmV0 dXJucyBhIGNvZGUgdGhhdCB5b3UNCj4gZGVjaXBoZXIgd2l0aCBnYWlfc3RyZXJyb3IoKS4gIFlv dXIgZXJyb3IgcmVwb3J0aW5nIGhlcmUgaXMgdmVyeSBzdXNwZWN0Lg0KDQpUaGFua3MsIGJyb2tl IHRoYXQgd2hlbiBjb252ZXJ0aW5nIGFuZCBhY2NvdW50aW5nIGZvciB5b3VyIG90aGVyIGNvbW1l bnRzLg0KDQo+DQo+PiArKysgYi9uZXQvbmV0LmMNCj4+IEBAIC03MzEsNiArNzMxLDkgQEAgc3Rh dGljIGludCAoKiBjb25zdCBuZXRfY2xpZW50X2luaXRfZnVuW05FVF9DTElFTlRfT1BUSU9OU19L SU5EX01BWF0pKA0KPj4gICAgICAgICAgIFtORVRfQ0xJRU5UX09QVElPTlNfS0lORF9CUklER0Vd ICAgID0gbmV0X2luaXRfYnJpZGdlLA0KPj4gICAjZW5kaWYNCj4+ICAgICAgICAgICBbTkVUX0NM SUVOVF9PUFRJT05TX0tJTkRfSFVCUE9SVF0gICA9IG5ldF9pbml0X2h1YnBvcnQsDQo+PiArI2lm ZGVmIENPTkZJR19MSU5VWA0KPj4gKyAgICAgICAgW05FVF9DTElFTlRfT1BUSU9OU19LSU5EX0wy VFBWM10gICAgICAgPSBuZXRfaW5pdF9sMnRwdjMsDQo+PiArI2VuZGlmDQo+IEFsaWdubWVudCBs b29rcyBvZmYuDQo+DQo=