From patchwork Tue Aug 10 09:17:43 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Danilov X-Patchwork-Id: 61349 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3EAFAB70D3 for ; Tue, 10 Aug 2010 19:17:49 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752872Ab0HJJRp (ORCPT ); Tue, 10 Aug 2010 05:17:45 -0400 Received: from mail-qw0-f46.google.com ([209.85.216.46]:36243 "EHLO mail-qw0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751422Ab0HJJRo (ORCPT ); Tue, 10 Aug 2010 05:17:44 -0400 Received: by qwh6 with SMTP id 6so8010504qwh.19 for ; Tue, 10 Aug 2010 02:17:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:date:message-id :subject:from:to:content-type; bh=UlTid0bh0rsJ9Ao2LEkvNCkYr8yHRb5cjaGYMAk7H+4=; b=sIlQLlb36m1oXE1fab+NU7PJ0a94KHUhG8vuedbMZD0HAvxmrIUdNSNVYddim4HzN9 RikkZ/oTqZiGPrOuG5dnDehKsHErFWYjt3Qa7j9C0EspdRY+RxBdwS8yeJl0ZIWJ4MLZ Z8U1T2z3V7lYQ1gsQYh8TMazPeJYlhDLdHr2s= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=gDcpN6cB5/CP3q0MJH85PRC5dRrHvKNpvBgsG1iN42hOBAjJhOVccL3N1/Txbcsk54 7VlxS6GLz7s7WbjnV1McRYGTYcqtAQGXZu25wY6y8uZHzA9sJNEFBnP06ZpHLR2BmBr6 qntorZs/SXNgCWZVwCXYvagOdT9CgnOP+lXgE= MIME-Version: 1.0 Received: by 10.229.239.3 with SMTP id ku3mr6983137qcb.129.1281431863220; Tue, 10 Aug 2010 02:17:43 -0700 (PDT) Received: by 10.229.232.84 with HTTP; Tue, 10 Aug 2010 02:17:43 -0700 (PDT) Date: Tue, 10 Aug 2010 13:17:43 +0400 Message-ID: Subject: [PATCH] iputils: firewall mark option in tracepath/tracepath6 From: =?UTF-8?B?0JDQvdGC0L7QvSDQlC4=?= To: netdev@vger.kernel.org Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org } @@ -375,7 +376,7 @@ int main(int argc, char **argv) int gai; char pbuf[NI_MAXSERV]; - while ((ch = getopt(argc, argv, "nbh?l:")) != EOF) { + while ((ch = getopt(argc, argv, "nbh?l:m:")) != EOF) { switch(ch) { case 'n': no_resolve = 1; @@ -389,6 +390,9 @@ int main(int argc, char **argv) exit(1); } break; + case 'm': + mark = atoi(optarg); + break; default: usage(); } @@ -439,6 +443,12 @@ int main(int argc, char **argv) } freeaddrinfo(ai0); + if (mark) { + if (setsockopt(fd, SOL_SOCKET, SO_MARK, &mark, sizeof(mark)) == -1) { + fprintf(stderr, "Warning: Failed to set mark %d\n", mark); + } + } + switch (family) { case AF_INET6: mtu = 128000; --- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/tracepath.c b/tracepath.c index 81c22e9..6675f14 100644 --- a/tracepath.c +++ b/tracepath.c @@ -42,6 +42,7 @@ __u16 base_port; const int overhead = 28; int mtu = 65535; +int mark = 0; int hops_to = -1; int hops_from = -1; int no_resolve = 0; @@ -285,7 +286,7 @@ static void usage(void) __attribute((noreturn)); static void usage(void) { - fprintf(stderr, "Usage: tracepath [-n] [-b] [-l ] [/]\n"); + fprintf(stderr, "Usage: tracepath [-n] [-b] [-l ] [-m ] [/]\n"); exit(-1); } @@ -299,7 +300,7 @@ main(int argc, char **argv) char *p; int ch; - while ((ch = getopt(argc, argv, "nbh?l:")) != EOF) { + while ((ch = getopt(argc, argv, "nbh?l:m:")) != EOF) { switch(ch) { case 'n': no_resolve = 1; @@ -313,6 +314,9 @@ main(int argc, char **argv) exit(1); } break; + case 'm': + mark = atoi(optarg); + break; default: usage(); } @@ -345,6 +349,12 @@ main(int argc, char **argv) } memcpy(&target.sin_addr, he->h_addr, 4); + if (mark) { + if (setsockopt(fd, SOL_SOCKET, SO_MARK, &mark, sizeof(mark)) == -1) { + fprintf(stderr, "Warning: Failed to set mark %d\n", mark); + } + } + on = IP_PMTUDISC_PROBE; if (setsockopt(fd, SOL_IP, IP_MTU_DISCOVER, &on, sizeof(on)) && (on = IP_PMTUDISC_DO, diff --git a/tracepath6.c b/tracepath6.c index 5cc7424..5d08c62 100644 --- a/tracepath6.c +++ b/tracepath6.c @@ -52,6 +52,7 @@ socklen_t targetlen; __u16 base_port; int overhead = 48; +int mark = 0; int mtu = 128000; int hops_to = -1; int hops_from = -1; @@ -359,7 +360,7 @@ static void usage(void) __attribute((noreturn)); static void usage(void) { - fprintf(stderr, "Usage: tracepath6 [-n] [-b] [-l ] [/]\n"); + fprintf(stderr, "Usage: tracepath6 [-n] [-b] [-l ] [-m ] [/]\n"); exit(-1);