From mboxrd@z Thu Jan 1 00:00:00 1970 From: Noel Burton-Krahn Subject: PATCH: periodictimer for mrp.c Date: Mon, 16 Sep 2013 13:32:37 -0700 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a1132f246d886a104e6861ade To: netdev@vger.kernel.org Return-path: Received: from mail-qc0-f177.google.com ([209.85.216.177]:49647 "EHLO mail-qc0-f177.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750948Ab3IPUci (ORCPT ); Mon, 16 Sep 2013 16:32:38 -0400 Received: by mail-qc0-f177.google.com with SMTP id x12so2989822qcv.8 for ; Mon, 16 Sep 2013 13:32:37 -0700 (PDT) Sender: netdev-owner@vger.kernel.org List-ID: --001a1132f246d886a104e6861ade Content-Type: text/plain; charset=ISO-8859-1 (originally to "David S. Miller" , CC'ed to netdev. Resent in text/plain) I ran into a problem when testing MVRP support in net/mrp.c: MRP would transmit JoinIn messages before the network interface was fully up, the packets would be lost, and MRP would never retry. It looks like the MRP implementation was missing the periodictimer defined in [802.1Q-2011] to retry if packets get lost. The attached patch patch adds the periodictimer. Note: As far as I can tell in [802.1Q-2011], the periodic timer never turns off. It fires every second, causing MRP to bounce from state QA to AA and back. You might think that would stop when the registrar responds with an JoinIn, but there's no state in the MRP state table to ignore the periodic timer after getting a reply. The result is MRP sends a JoinIn message every second. This may not be desirable, but it's what the spec requires. [802.1Q-2011] http://standards.ieee.org/findstds/standard/802.1Q-2011.html Does this look OK to you? -- Noel --001a1132f246d886a104e6861ade Content-Type: application/octet-stream; name="mrp-periodictimer.patch" Content-Disposition: attachment; filename="mrp-periodictimer.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hlo4x3000 ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L21ycC5oIGIvaW5jbHVkZS9uZXQvbXJwLmgKaW5kZXgg NGZiZjAyYS4uMGY3NTU4YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvbXJwLmgKKysrIGIvaW5j bHVkZS9uZXQvbXJwLmgKQEAgLTExMiw2ICsxMTIsNyBAQCBzdHJ1Y3QgbXJwX2FwcGxpY2FudCB7 CiAJc3RydWN0IG1ycF9hcHBsaWNhdGlvbgkqYXBwOwogCXN0cnVjdCBuZXRfZGV2aWNlCSpkZXY7 CiAJc3RydWN0IHRpbWVyX2xpc3QJam9pbl90aW1lcjsKKwlzdHJ1Y3QgdGltZXJfbGlzdAlwZXJp b2RpY190aW1lcjsKIAogCXNwaW5sb2NrX3QJCWxvY2s7CiAJc3RydWN0IHNrX2J1ZmZfaGVhZAlx dWV1ZTsKZGlmZiAtLWdpdCBhL25ldC84MDIvbXJwLmMgYi9uZXQvODAyL21ycC5jCmluZGV4IDFl YjA1ZDguLjk3NTY2ZWMgMTAwNjQ0Ci0tLSBhL25ldC84MDIvbXJwLmMKKysrIGIvbmV0LzgwMi9t cnAuYwpAQCAtMjQsNiArMjQsMTEgQEAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgbXJwX2pvaW5fdGlt ZSBfX3JlYWRfbW9zdGx5ID0gMjAwOwogbW9kdWxlX3BhcmFtKG1ycF9qb2luX3RpbWUsIHVpbnQs IDA2NDQpOwogTU9EVUxFX1BBUk1fREVTQyhtcnBfam9pbl90aW1lLCAiSm9pbiB0aW1lIGluIG1z IChkZWZhdWx0IDIwMG1zKSIpOworCitzdGF0aWMgdW5zaWduZWQgaW50IG1ycF9wZXJpb2RpY190 aW1lIF9fcmVhZF9tb3N0bHkgPSAxMDAwOworbW9kdWxlX3BhcmFtKG1ycF9wZXJpb2RpY190aW1l LCB1aW50LCAwNjQ0KTsKK01PRFVMRV9QQVJNX0RFU0MobXJwX3BlcmlvZGljX3RpbWUsICJQZXJp b2RpYyB0aW1lIGluIG1zIChkZWZhdWx0IDFzKSIpOworCiBNT0RVTEVfTElDRU5TRSgiR1BMIik7 CiAKIHN0YXRpYyBjb25zdCB1OApAQCAtNTk1LDYgKzYwMCw0MyBAQCBzdGF0aWMgdm9pZCBtcnBf am9pbl90aW1lcih1bnNpZ25lZCBsb25nIGRhdGEpCiAJbXJwX2pvaW5fdGltZXJfYXJtKGFwcCk7 CiB9CiAKK3N0YXRpYyB2b2lkIG1ycF9wZXJpb2RpY190aW1lcl9hcm0oc3RydWN0IG1ycF9hcHBs aWNhbnQgKmFwcCkKK3sKKwl1bnNpZ25lZCBsb25nIGRlbGF5OworCisJZGVsYXkgPSAodTY0KW1z ZWNzX3RvX2ppZmZpZXMobXJwX3BlcmlvZGljX3RpbWUpOworCW1vZF90aW1lcigmYXBwLT5wZXJp b2RpY190aW1lciwgamlmZmllcyArIGRlbGF5KTsKK30KKworCisvKgorICBBZGRlZCBwZXJpb2Rp YyB0aW1lciBmcm9tIFs4MDIuMVEtMjAxMV0gdG8gcmV0cnkgaWYgTVJQIGxvc2VzCisgIG1lc3Nh Z2VzLiAgTVJQIHVzZWQgdG8gbG9zZSBKb2luSW4gbWVzc2FnZXMgYW5kIG5ldmVyIHJldHJ5IGlm IGl0CisgIHNlbnQgbWVzc2FnZXMgYmVmb3JlIHRoZSBpbnRlcmZhY2UgYmVjb21lcyByZWFkeS4K KworICBUaGUgcGVyaW9kaWMgdGltZXIgZnJvbSB0aGUgODAyLjFRIHNwZWMgbmV2ZXIgdHVybnMg b2ZmLiAgSXQgZmlyZXMKKyAgZXZlcnkgc2Vjb25kLCBjYXVzaW5nIE1SUCB0byBib3VuY2UgZnJv bSBzdGF0ZSBRQSB0byBBQSBhbmQgYmFjay4KKyAgWW91IG1pZ2h0IHRoaW5rIHRoYXQgd291bGQg c3RvcCB3aGVuIHRoZSByZWdpc3RyYXIgcmVzcG9uZHMgd2l0aCBhbgorICBKb2luSW4sIGJ1dCB0 aGVyZSdzIG5vIHN0YXRlIGluIHRoZSBNUlAgc3RhdGUgdGFibGUgdG8gaWdub3JlIHRoZQorICBw ZXJpb2RpYyB0aW1lciBhZnRlciBnZXR0aW5nIGEgcmVwbHkuICBUaGUgcmVzdWx0IGlzIE1SUCBz ZW5kcyBhCisgIEpvaW5JbiBtZXNzYWdlIGV2ZXJ5IHNlY29uZC4gIFRoaXMgbWF5IG5vdCBiZSBk ZXNpcmFibGUsIGJ1dCBpdCdzCisgIHdoYXQgdGhlIHNwZWMgcmVxdWlyZXMuCisgIAorICBbODAy LjFRLTIwMTFdCisgIGh0dHA6Ly9zdGFuZGFyZHMuaWVlZS5vcmcvZmluZHN0ZHMvc3RhbmRhcmQv ODAyLjFRLTIwMTEuaHRtbAorKi8KK3N0YXRpYyB2b2lkIG1ycF9wZXJpb2RpY190aW1lcih1bnNp Z25lZCBsb25nIGRhdGEpCit7CisJc3RydWN0IG1ycF9hcHBsaWNhbnQgKmFwcCA9IChzdHJ1Y3Qg bXJwX2FwcGxpY2FudCAqKWRhdGE7CisKKwlzcGluX2xvY2soJmFwcC0+bG9jayk7CisJbXJwX21h ZF9ldmVudChhcHAsIE1SUF9FVkVOVF9QRVJJT0RJQyk7CisJbXJwX3BkdV9xdWV1ZShhcHApOwor CXNwaW5fdW5sb2NrKCZhcHAtPmxvY2spOworCisJbXJwX3BlcmlvZGljX3RpbWVyX2FybShhcHAp OworfQorCiBzdGF0aWMgaW50IG1ycF9wZHVfcGFyc2VfZW5kX21hcmsoc3RydWN0IHNrX2J1ZmYg KnNrYiwgaW50ICpvZmZzZXQpCiB7CiAJX19iZTE2IGVuZG1hcms7CkBAIC04NDUsNiArODg3LDgg QEAgaW50IG1ycF9pbml0X2FwcGxpY2FudChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qg bXJwX2FwcGxpY2F0aW9uICphcHBsKQogCXJjdV9hc3NpZ25fcG9pbnRlcihkZXYtPm1ycF9wb3J0 LT5hcHBsaWNhbnRzW2FwcGwtPnR5cGVdLCBhcHApOwogCXNldHVwX3RpbWVyKCZhcHAtPmpvaW5f dGltZXIsIG1ycF9qb2luX3RpbWVyLCAodW5zaWduZWQgbG9uZylhcHApOwogCW1ycF9qb2luX3Rp bWVyX2FybShhcHApOworCXNldHVwX3RpbWVyKCZhcHAtPnBlcmlvZGljX3RpbWVyLCBtcnBfcGVy aW9kaWNfdGltZXIsICh1bnNpZ25lZCBsb25nKWFwcCk7CisJbXJwX3BlcmlvZGljX3RpbWVyX2Fy bShhcHApOwogCXJldHVybiAwOwogCiBlcnIzOgpAQCAtODcwLDYgKzkxNCw3IEBAIHZvaWQgbXJw X3VuaW5pdF9hcHBsaWNhbnQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IG1ycF9hcHBs aWNhdGlvbiAqYXBwbCkKIAkgKiBhbGwgcGVuZGluZyBtZXNzYWdlcyBiZWZvcmUgdGhlIGFwcGxp Y2FudCBpcyBnb25lLgogCSAqLwogCWRlbF90aW1lcl9zeW5jKCZhcHAtPmpvaW5fdGltZXIpOwor CWRlbF90aW1lcl9zeW5jKCZhcHAtPnBlcmlvZGljX3RpbWVyKTsKIAogCXNwaW5fbG9ja19iaCgm YXBwLT5sb2NrKTsKIAltcnBfbWFkX2V2ZW50KGFwcCwgTVJQX0VWRU5UX1RYKTsK --001a1132f246d886a104e6861ade--