From patchwork Sun Apr 30 03:48:50 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Ahern X-Patchwork-Id: 756806 X-Patchwork-Delegate: shemminger@vyatta.com 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 3wFtp82hx3z9s3w for ; Sun, 30 Apr 2017 13:49:04 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=cumulusnetworks.com header.i=@cumulusnetworks.com header.b="Ylrn3hk9"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1423778AbdD3Ds6 (ORCPT ); Sat, 29 Apr 2017 23:48:58 -0400 Received: from mail-pf0-f172.google.com ([209.85.192.172]:35604 "EHLO mail-pf0-f172.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1164562AbdD3Dsy (ORCPT ); Sat, 29 Apr 2017 23:48:54 -0400 Received: by mail-pf0-f172.google.com with SMTP id v14so63758521pfd.2 for ; Sat, 29 Apr 2017 20:48:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cumulusnetworks.com; s=google; h=from:to:cc:subject:date:message-id; bh=1BfDQoPURjiX1ebgBnNE2XW6zfxXNEWd/gpyGEsiqtc=; b=Ylrn3hk93YhJlCSlVN8sHYW+HH3Ma6giX/proeuMGjtq8UnPbssxtFXZ30UlNfo4Fz bRFSXUBM9IZcGq+XC916LOX0Wb1y54ShCpJBJBtDTWRut/iXzTSq8AKfzKfCt0Z155BK nQ20cfJondgI2YQo6ei2bye2V7dO9ZAHd8nis= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=1BfDQoPURjiX1ebgBnNE2XW6zfxXNEWd/gpyGEsiqtc=; b=LkZQT6CHcN207pPNU72+HlD4PeMA2CGmJ0AytcFOugqQAE8DlpWm93NSWUMSXlBc2V RaQe3D/Tfp8dZlB+85K75v6xZMnzKg9+fzNA+OHg832nJWdwgiTeq7vMtLn1J+eVpYwK kx0ie4g2fYlhS+P1u96imE7U74IG9y57vyO1rz00ePpcO9SQaGCc8GS7AuapqIeEPBkx Bq84SIDYOPfcxl4fF5UAWRbUCj+3bBs1eSqEgqBj3bcr+fvv/yNZ3ZRrtgsj0ifmfPtl //gOsqoboW2CJhWJrgYMPp400y7x+4Var8SZkD4xQi1mWGkCZ99QxfEKlj7xXBTXuzHq FnJQ== X-Gm-Message-State: AN3rC/79Z3IjAdayxrkHzG+DHAzQyGKd0Hoo7pglsODScUlTmayuB1Nq LbKEZnpp6/WzHqrb X-Received: by 10.98.16.208 with SMTP id 77mr19745444pfq.105.1493524133812; Sat, 29 Apr 2017 20:48:53 -0700 (PDT) Received: from kenny.it.cumulusnetworks.com. ([216.129.126.126]) by smtp.googlemail.com with ESMTPSA id z22sm19909928pfg.117.2017.04.29.20.48.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 29 Apr 2017 20:48:53 -0700 (PDT) From: David Ahern To: netdev@vger.kernel.org, stephen@networkplumber.org Cc: David Ahern Subject: [PATCH net-next iproute2] ip: increase number of MPLS labels Date: Sat, 29 Apr 2017 20:48:50 -0700 Message-Id: <1493524130-10220-1-git-send-email-dsa@cumulusnetworks.com> X-Mailer: git-send-email 2.1.4 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Kernel now supports more than 2 labels. Increase ip to handle up to 16 labels. Signed-off-by: David Ahern --- include/utils.h | 8 ++++---- lib/utils.c | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/utils.h b/include/utils.h index 8c12e1e2a60c..a69e176c260d 100644 --- a/include/utils.h +++ b/include/utils.h @@ -54,6 +54,9 @@ void incomplete_command(void) __attribute__((noreturn)); #define NEXT_ARG_FWD() do { argv++; argc--; } while(0) #define PREV_ARG() do { argv--; argc++; } while(0) +/* Maximum number of labels the mpls helpers support */ +#define MPLS_MAX_LABELS 16 + typedef struct { __u16 flags; @@ -61,7 +64,7 @@ typedef struct __s16 bitlen; /* These next two fields match rtvia */ __u16 family; - __u32 data[8]; + __u32 data[MPLS_MAX_LABELS]; } inet_prefix; #define PREFIXLEN_SPECIFIED 1 @@ -88,9 +91,6 @@ struct ipx_addr { # define AF_MPLS 28 #endif -/* Maximum number of labels the mpls helpers support */ -#define MPLS_MAX_LABELS 8 - __u32 get_addr32(const char *name); int get_addr_1(inet_prefix *dst, const char *arg, int family); int get_prefix_1(inet_prefix *dst, char *arg, int family); diff --git a/lib/utils.c b/lib/utils.c index 6d5642f4f1f3..c23251067180 100644 --- a/lib/utils.c +++ b/lib/utils.c @@ -526,7 +526,7 @@ int get_addr_1(inet_prefix *addr, const char *name, int family) addr->bytelen = 4; addr->bitlen = 20; /* How many bytes do I need? */ - for (i = 0; i < 8; i++) { + for (i = 0; i < MPLS_MAX_LABELS; i++) { if (ntohl(addr->data[i]) & MPLS_LS_S_MASK) { addr->bytelen = (i + 1)*4; break;