From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Lemoine Subject: [PATCH] Allow setting dev->weight using ip(8) Date: Mon, 30 Aug 2004 12:56:20 +0200 Sender: netdev-bounce@oss.sgi.com Message-ID: <5cac192f040830035669628d1@mail.gmail.com> Reply-To: Eric Lemoine Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_51_22126098.1093863380382" Return-path: To: netdev@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com List-Id: netdev.vger.kernel.org ------=_Part_51_22126098.1093863380382 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline Hello For my own testing purposes, I often need to modify dev->weight. So I patched the kernel and iproute2 to be able to modify dev->weight using ip(8). After all, one can modify tx_queue_len so why not weight? Two kernel patches attached: one using the ioctl framework and another using the rtnetlink framework. Warning: the attached rtnetlink patch is a superset of Thomas Graf's rtnetlink patch for setting mtu and tx_queue_len. PS: both patches are against 2.6.5-rc3-ben0 but should apply to any 2.6. -- Eric ------=_Part_51_22126098.1093863380382 Content-Type: application/octet-stream; name="patch-ioctl_dev_weight-2-6-5-rc3-ben0-A0" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="patch-ioctl_dev_weight-2-6-5-rc3-ben0-A0" PT09PT0gZnMvY29tcGF0X2lvY3RsLmMgMS4yMyB2cyBlZGl0ZWQgPT09PT0KLS0tIDEuMjMvZnMv Y29tcGF0X2lvY3RsLmMJMjAwNC0wMy0yNSAwMjoxNDoyNyArMDE6MDAKKysrIGVkaXRlZC9mcy9j b21wYXRfaW9jdGwuYwkyMDA0LTA3LTMwIDE1OjQyOjIxICswMjowMApAQCAtNjk0LDYgKzY5NCw3 IEBACiAJCWNhc2UgU0lPQ0dJRkRTVEFERFI6CiAJCWNhc2UgU0lPQ0dJRk5FVE1BU0s6CiAJCWNh c2UgU0lPQ0dJRlRYUUxFTjoKKwkJY2FzZSBTSU9DR0lGV0VJR0hUOgogCQkJaWYgKGNvcHlfdG9f dXNlcih1aWZyMzIsICZpZnIsIHNpemVvZigqdWlmcjMyKSkpCiAJCQkJcmV0dXJuIC1FRkFVTFQ7 CiAJCQlicmVhazsKQEAgLTMxMjEsNiArMzEyMiw4IEBACiBIQU5ETEVfSU9DVEwoU0lPQ0dJRlBG TEFHUywgZGV2X2lmc2lvYykKIEhBTkRMRV9JT0NUTChTSU9DR0lGVFhRTEVOLCBkZXZfaWZzaW9j KQogSEFORExFX0lPQ1RMKFNJT0NTSUZUWFFMRU4sIGRldl9pZnNpb2MpCitIQU5ETEVfSU9DVEwo U0lPQ0dJRldFSUdIVCwgZGV2X2lmc2lvYykKK0hBTkRMRV9JT0NUTChTSU9DU0lGV0VJR0hULCBk ZXZfaWZzaW9jKQogSEFORExFX0lPQ1RMKFRVTlNFVElGRiwgZGV2X2lmc2lvYykKIEhBTkRMRV9J T0NUTChTSU9DRVRIVE9PTCwgZXRodG9vbF9pb2N0bCkKIEhBTkRMRV9JT0NUTChTSU9DQk9OREVO U0xBVkUsIGJvbmRfaW9jdGwpCj09PT09IGluY2x1ZGUvbGludXgvaWYuaCAxLjggdnMgZWRpdGVk ID09PT09Ci0tLSAxLjgvaW5jbHVkZS9saW51eC9pZi5oCTIwMDMtMDQtMTggMjA6Mjg6MzcgKzAy OjAwCisrKyBlZGl0ZWQvaW5jbHVkZS9saW51eC9pZi5oCTIwMDQtMDctMzAgMTU6Mzg6MzcgKzAy OjAwCkBAIC0xNjQsNiArMTY0LDcgQEAKICNkZWZpbmUgaWZyX2lmaW5kZXgJaWZyX2lmcnUuaWZy dV9pdmFsdWUJLyogaW50ZXJmYWNlIGluZGV4CSovCiAjZGVmaW5lIGlmcl9iYW5kd2lkdGgJaWZy X2lmcnUuaWZydV9pdmFsdWUgICAgLyogbGluayBiYW5kd2lkdGgJKi8KICNkZWZpbmUgaWZyX3Fs ZW4JaWZyX2lmcnUuaWZydV9pdmFsdWUJLyogUXVldWUgbGVuZ3RoIAkqLworI2RlZmluZSBpZnJf d2VpZ2h0CWlmcl9pZnJ1LmlmcnVfaXZhbHVlCS8qIGRldiBwb2xsIHdlaWdodAkqLwogI2RlZmlu ZSBpZnJfbmV3bmFtZQlpZnJfaWZydS5pZnJ1X25ld25hbWUJLyogTmV3IG5hbWUJCSovCiAjZGVm aW5lIGlmcl9zZXR0aW5ncwlpZnJfaWZydS5pZnJ1X3NldHRpbmdzCS8qIERldmljZS9wcm90byBz ZXR0aW5ncyovCiAKPT09PT0gaW5jbHVkZS9saW51eC9zb2NraW9zLmggMS43IHZzIGVkaXRlZCA9 PT09PQotLS0gMS43L2luY2x1ZGUvbGludXgvc29ja2lvcy5oCTIwMDItMDMtMDcgMDg6NDA6MTYg KzAxOjAwCisrKyBlZGl0ZWQvaW5jbHVkZS9saW51eC9zb2NraW9zLmgJMjAwNC0wNy0zMCAxNTo0 MDo0OCArMDI6MDAKQEAgLTgzLDYgKzgzLDkgQEAKIAogI2RlZmluZSBTSU9DV0FOREVWCTB4ODk0 QQkJLyogZ2V0L3NldCBuZXRkZXYgcGFyYW1ldGVycwkqLwogCisjZGVmaW5lIFNJT0NHSUZXRUlH SFQJMHg4OTRCCQkvKiBnZXQgZGV2IHBvbGwgd2VpZ2h0CQkqLworI2RlZmluZSBTSU9DU0lGV0VJ R0hUCTB4ODk0QwkJLyogc2V0IGRldiBwb2xsIHdlaWdodAkJKi8KKwogLyogQVJQIGNhY2hlIGNv bnRyb2wgY2FsbHMuICovCiAJCSAgICAvKiAgMHg4OTUwIC0gMHg4OTUyICAqIG9ic29sZXRlIGNh bGxzLCBkb24ndCByZS11c2UgKi8KICNkZWZpbmUgU0lPQ0RBUlAJMHg4OTUzCQkvKiBkZWxldGUg QVJQIHRhYmxlIGVudHJ5CSovCj09PT09IG5ldC9jb3JlL2Rldi5jIDEuMTM1IHZzIGVkaXRlZCA9 PT09PQotLS0gMS4xMzUvbmV0L2NvcmUvZGV2LmMJMjAwNC0wMy0xOSAyMzoxNzozNCArMDE6MDAK KysrIGVkaXRlZC9uZXQvY29yZS9kZXYuYwkyMDA0LTA3LTMwIDE1OjM2OjU4ICswMjowMApAQCAt MjQ4Nyw2ICsyNDg3LDE2IEBACiAJCQlkZXYtPnR4X3F1ZXVlX2xlbiA9IGlmci0+aWZyX3FsZW47 CiAJCQlyZXR1cm4gMDsKIAorCQljYXNlIFNJT0NHSUZXRUlHSFQ6CisJCQlpZnItPmlmcl93ZWln aHQgPSBkZXYtPndlaWdodDsKKwkJCXJldHVybiAwOworCisJCWNhc2UgU0lPQ1NJRldFSUdIVDoK KwkJCWlmIChpZnItPmlmcl93ZWlnaHQgPCAwKQorCQkJCXJldHVybiAtRUlOVkFMOworCQkJZGV2 LT53ZWlnaHQgPSBpZnItPmlmcl93ZWlnaHQ7CisJCQlyZXR1cm4gMDsKKwogCQljYXNlIFNJT0NT SUZOQU1FOgogCQkJaWZyLT5pZnJfbmV3bmFtZVtJRk5BTVNJWi0xXSA9ICdcMCc7CiAJCQlyZXR1 cm4gZGV2X2NoYW5nZV9uYW1lKGRldiwgaWZyLT5pZnJfbmV3bmFtZSk7CkBAIC0yNTg3LDYgKzI1 OTcsNyBAQAogCQljYXNlIFNJT0NHSUZNQVA6CiAJCWNhc2UgU0lPQ0dJRklOREVYOgogCQljYXNl IFNJT0NHSUZUWFFMRU46CisJCWNhc2UgU0lPQ0dJRldFSUdIVDoKIAkJCWRldl9sb2FkKGlmci5p ZnJfbmFtZSk7CiAJCQlyZWFkX2xvY2soJmRldl9iYXNlX2xvY2spOwogCQkJcmV0ID0gZGV2X2lm c2lvYygmaWZyLCBjbWQpOwpAQCAtMjY1NCw2ICsyNjY1LDcgQEAKIAkJY2FzZSBTSU9DREVMTVVM VEk6CiAJCWNhc2UgU0lPQ1NJRkhXQlJPQURDQVNUOgogCQljYXNlIFNJT0NTSUZUWFFMRU46CisJ CWNhc2UgU0lPQ1NJRldFSUdIVDoKIAkJY2FzZSBTSU9DU01JSVJFRzoKIAkJY2FzZSBTSU9DQk9O REVOU0xBVkU6CiAJCWNhc2UgU0lPQ0JPTkRSRUxFQVNFOgo= ------=_Part_51_22126098.1093863380382 Content-Type: application/octet-stream; name="patch-qlen_mtu_weight_setget-2-6-5-rc3-ben0" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="patch-qlen_mtu_weight_setget-2-6-5-rc3-ben0" PT09PT0gaW5jbHVkZS9saW51eC9ydG5ldGxpbmsuaCAxLjMyIHZzIGVkaXRlZCA9PT09PQotLS0g MS4zMi9pbmNsdWRlL2xpbnV4L3J0bmV0bGluay5oCTIwMDQtMDEtMTYgMTE6MDU6MjQgKzAxOjAw CisrKyBlZGl0ZWQvaW5jbHVkZS9saW51eC9ydG5ldGxpbmsuaAkyMDA0LTA4LTI2IDEyOjQxOjM3 ICswMjowMApAQCAtNTQ0LDYgKzU0NCw5IEBACiAjZGVmaW5lIElGTEFfV0lSRUxFU1MgSUZMQV9X SVJFTEVTUwogCUlGTEFfUFJPVElORk8sCQkvKiBQcm90b2NvbCBzcGVjaWZpYyBpbmZvcm1hdGlv biBmb3IgYSBsaW5rICovCiAjZGVmaW5lIElGTEFfUFJPVElORk8gSUZMQV9QUk9USU5GTworCUlG TEFfVFhRTEVOLAorCUlGTEFfV0VJR0hULAorCUlGTEFfTUFQLAogfTsKIAogCj09PT09IG5ldC9j b3JlL3J0bmV0bGluay5jIDEuMTggdnMgZWRpdGVkID09PT09Ci0tLSAxLjE4L25ldC9jb3JlL3J0 bmV0bGluay5jCTIwMDMtMDktMjggMTg6NTE6NTAgKzAyOjAwCisrKyBlZGl0ZWQvbmV0L2NvcmUv cnRuZXRsaW5rLmMJMjAwNC0wOC0yNiAxMjo0Mjo1MiArMDI6MDAKQEAgLTE2NiwzMSArMTY2LDU4 IEBACiAJci0+aWZpX2ZhbWlseSA9IEFGX1VOU1BFQzsKIAlyLT5pZmlfdHlwZSA9IGRldi0+dHlw ZTsKIAlyLT5pZmlfaW5kZXggPSBkZXYtPmlmaW5kZXg7Ci0Jci0+aWZpX2ZsYWdzID0gZGV2LT5m bGFnczsKKwlyLT5pZmlfZmxhZ3MgPSBkZXZfZ2V0X2ZsYWdzKGRldik7CiAJci0+aWZpX2NoYW5n ZSA9IGNoYW5nZTsKIAotCWlmICghbmV0aWZfcnVubmluZyhkZXYpIHx8ICFuZXRpZl9jYXJyaWVy X29rKGRldikpCi0JCXItPmlmaV9mbGFncyAmPSB+SUZGX1JVTk5JTkc7Ci0JZWxzZQotCQlyLT5p ZmlfZmxhZ3MgfD0gSUZGX1JVTk5JTkc7Ci0KIAlSVEFfUFVUKHNrYiwgSUZMQV9JRk5BTUUsIHN0 cmxlbihkZXYtPm5hbWUpKzEsIGRldi0+bmFtZSk7CisKKwlpZiAoMSkgeworCQl1MzIgdHhxbGVu ID0gZGV2LT50eF9xdWV1ZV9sZW47CisJCVJUQV9QVVQoc2tiLCBJRkxBX1RYUUxFTiwgc2l6ZW9m KHR4cWxlbiksICZ0eHFsZW4pOworCX0KKworCWlmICgxKSB7CisJCXUzMiB3ZWlnaHQgPSBkZXYt PndlaWdodDsKKwkJUlRBX1BVVChza2IsIElGTEFfV0VJR0hULCBzaXplb2Yod2VpZ2h0KSwgJndl aWdodCk7CisJfQorCisJaWYgKDEpIHsKKwkJc3RydWN0IGlmbWFwIG1hcCA9IHsKKwkJCS5tZW1f c3RhcnQgICA9IGRldi0+bWVtX3N0YXJ0LAorCQkJLm1lbV9lbmQgICAgID0gZGV2LT5tZW1fZW5k LAorCQkJLmJhc2VfYWRkciAgID0gZGV2LT5iYXNlX2FkZHIsCisJCQkuaXJxICAgICAgICAgPSBk ZXYtPmlycSwKKwkJCS5kbWEgICAgICAgICA9IGRldi0+ZG1hLAorCQkJLnBvcnQgICAgICAgID0g ZGV2LT5pZl9wb3J0LAorCQl9OworCQlSVEFfUFVUKHNrYiwgSUZMQV9NQVAsIHNpemVvZihtYXAp LCAmbWFwKTsKKwl9CisKIAlpZiAoZGV2LT5hZGRyX2xlbikgewogCQlSVEFfUFVUKHNrYiwgSUZM QV9BRERSRVNTLCBkZXYtPmFkZHJfbGVuLCBkZXYtPmRldl9hZGRyKTsKIAkJUlRBX1BVVChza2Is IElGTEFfQlJPQURDQVNULCBkZXYtPmFkZHJfbGVuLCBkZXYtPmJyb2FkY2FzdCk7CiAJfQorCiAJ aWYgKDEpIHsKLQkJdW5zaWduZWQgbXR1ID0gZGV2LT5tdHU7CisJCXUzMiBtdHUgPSBkZXYtPm10 dTsKIAkJUlRBX1BVVChza2IsIElGTEFfTVRVLCBzaXplb2YobXR1KSwgJm10dSk7CiAJfQotCWlm IChkZXYtPmlmaW5kZXggIT0gZGV2LT5pZmxpbmspCi0JCVJUQV9QVVQoc2tiLCBJRkxBX0xJTkss IHNpemVvZihpbnQpLCAmZGV2LT5pZmxpbmspOworCisJaWYgKGRldi0+aWZpbmRleCAhPSBkZXYt PmlmbGluaykgeworCQl1MzIgaWZsaW5rID0gZGV2LT5pZmxpbms7CisJCVJUQV9QVVQoc2tiLCBJ RkxBX0xJTkssIHNpemVvZihpZmxpbmspLCAmaWZsaW5rKTsKKwl9CisKIAlpZiAoZGV2LT5xZGlz Y19zbGVlcGluZykKIAkJUlRBX1BVVChza2IsIElGTEFfUURJU0MsCiAJCQlzdHJsZW4oZGV2LT5x ZGlzY19zbGVlcGluZy0+b3BzLT5pZCkgKyAxLAogCQkJZGV2LT5xZGlzY19zbGVlcGluZy0+b3Bz LT5pZCk7Ci0JaWYgKGRldi0+bWFzdGVyKQotCQlSVEFfUFVUKHNrYiwgSUZMQV9NQVNURVIsIHNp emVvZihpbnQpLCAmZGV2LT5tYXN0ZXItPmlmaW5kZXgpOworCisJaWYgKGRldi0+bWFzdGVyKSB7 CisJCXUzMiBtYXN0ZXIgPSBkZXYtPm1hc3Rlci0+aWZpbmRleDsKKwkJUlRBX1BVVChza2IsIElG TEFfTUFTVEVSLCBzaXplb2YobWFzdGVyKSwgJm1hc3Rlcik7CisJfQorCiAJaWYgKGRldi0+Z2V0 X3N0YXRzKSB7CiAJCXVuc2lnbmVkIGxvbmcgKnN0YXRzID0gKHVuc2lnbmVkIGxvbmcqKWRldi0+ Z2V0X3N0YXRzKGRldik7CiAJCWlmIChzdGF0cykgewpAQCAtMjQ2LDYgKzI3MywzMCBAQAogCiAJ ZXJyID0gLUVJTlZBTDsKIAorCWlmIChpZm0tPmlmaV9mbGFncykKKwkJZGV2X2NoYW5nZV9mbGFn cyhkZXYsIGlmbS0+aWZpX2ZsYWdzKTsKKworCWlmIChpZGFbSUZMQV9NQVAgLSAxXSkgeworCQlp ZiAoIWRldi0+c2V0X2NvbmZpZykgeworCQkJZXJyID0gLUVPUE5PVFNVUFA7CisJCQlnb3RvIG91 dDsKKwkJfQorCisJCWlmICghbmV0aWZfZGV2aWNlX3ByZXNlbnQoZGV2KSkgeworCQkJZXJyID0g LUVOT0RFVjsKKwkJCWdvdG8gb3V0OworCQl9CisKKwkJaWYgKGlkYVtJRkxBX01BUCAtIDFdLT5y dGFfbGVuICE9IFJUQV9MRU5HVEgoc2l6ZW9mKHN0cnVjdCBpZm1hcCkpKQorCQkJZ290byBvdXQ7 CisKKwkJZXJyID0gZGV2LT5zZXRfY29uZmlnKGRldiwgKHN0cnVjdCBpZm1hcCAqKQorCQkJCVJU QV9EQVRBKGlkYVtJRkxBX01BUCAtIDFdKSk7CisKKwkJaWYgKGVycikKKwkJCWdvdG8gb3V0Owor CX0KKwogCWlmIChpZGFbSUZMQV9BRERSRVNTIC0gMV0pIHsKIAkJaWYgKCFkZXYtPnNldF9tYWNf YWRkcmVzcykgewogCQkJZXJyID0gLUVPUE5PVFNVUFA7CkBAIC0yNjgsNiArMzE5LDMwIEBACiAJ CQlnb3RvIG91dDsKIAkJbWVtY3B5KGRldi0+YnJvYWRjYXN0LCBSVEFfREFUQShpZGFbSUZMQV9C Uk9BRENBU1QgLSAxXSksCiAJCSAgICAgICBkZXYtPmFkZHJfbGVuKTsKKwl9CisKKwlpZiAoaWRh W0lGTEFfTVRVIC0gMV0pIHsKKwkJaWYgKGlkYVtJRkxBX01UVSAtIDFdLT5ydGFfbGVuICE9IFJU QV9MRU5HVEgoc2l6ZW9mKHUzMikpKQorCQkJZ290byBvdXQ7CisJCWVyciA9IGRldl9zZXRfbXR1 KGRldiwgKigodTMyICopIFJUQV9EQVRBKGlkYVtJRkxBX01UVSAtIDFdKSkpOworCisJCWlmIChl cnIpCisJCQlnb3RvIG91dDsKKworCX0KKworCWlmIChpZGFbSUZMQV9UWFFMRU4gLSAxXSkgewor CQlpZiAoaWRhW0lGTEFfVFhRTEVOIC0gMV0tPnJ0YV9sZW4gIT0gUlRBX0xFTkdUSChzaXplb2Yo dTMyKSkpCisJCQlnb3RvIG91dDsKKworCQlkZXYtPnR4X3F1ZXVlX2xlbiA9ICooKHUzMiAqKSBS VEFfREFUQShpZGFbSUZMQV9UWFFMRU4gLSAxXSkpOworCX0KKworCWlmIChpZGFbSUZMQV9XRUlH SFQgLTEgXSkgeworCQlpZiAoaWRhW0lGTEFfV0VJR0hUIC0gMV0tPnJ0YV9sZW4gIT0gUlRBX0xF TkdUSChzaXplb2YodTMyKSkpCisJCQlnb3RvIG91dDsKKworCQlkZXYtPndlaWdodCA9ICooKHUz MiAqKSBSVEFfREFUQShpZGFbSUZMQV9XRUlHSFQgLSAxXSkpOwogCX0KIAogCWVyciA9IDA7Cg== ------=_Part_51_22126098.1093863380382--