From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756578AbdJJViA (ORCPT ); Tue, 10 Oct 2017 17:38:00 -0400 Received: from mail-bn3nam01on0049.outbound.protection.outlook.com ([104.47.33.49]:23240 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754212AbdJJVh5 (ORCPT ); Tue, 10 Oct 2017 17:37:57 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=David.Daney@cavium.com; Subject: Re: [PATCH v2] xdp: Sample xdp program implementing ip forward To: Stephen Hemminger , Christina Jacob Cc: Christina Jacob , daniel@iogearbox.net, Sunil.Goutham@cavium.com, netdev@vger.kernel.org, dsahern@gmail.com, linux-kernel@vger.kernel.org, brouer@redhat.com, linux-arm-kernel@lists.infradead.org References: <1507620532-25804-1-git-send-email-Christina.Jacob@cavium.com> <1507620532-25804-2-git-send-email-Christina.Jacob@cavium.com> <20171010101921.30136d48@shemminger-XPS-13-9360> From: David Daney Message-ID: Date: Tue, 10 Oct 2017 14:37:51 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: <20171010101921.30136d48@shemminger-XPS-13-9360> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [50.233.148.156] X-ClientProxiedBy: SN1PR0701CA0047.namprd07.prod.outlook.com (10.163.126.15) To DM5PR07MB3497.namprd07.prod.outlook.com (10.164.153.28) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 69300d1a-e3a0-486a-2ddb-08d510272b38 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075);SRVR:DM5PR07MB3497; X-Microsoft-Exchange-Diagnostics: 1;DM5PR07MB3497;3:tB7zK9BukhDddmXhStcJyS8RvWkb0AXG8xu9IExKC/L/73o54m6/JNQwj61C+IVEqM/hUKizKoaamBczhAO+DV9RkZ7yNpfpI2ubNB9xHt0WZ2GQ+D6dK3EsMD792KyLkBELjtgmr98yK+sadtzE7Ao4wiRPw2Sskmdzrw5nbKzwG+JdFH/ynDjxmh0XNrL5l6mMbK6let6bbnnVuQ3cpFqTKJTz63u0Ar3G2qpBMDoou1b2yBBoUJXXYe0rbGBL;25:iwxAVNq3c2SylZXv0B8Bi43mHbEE68dZ8BSlU92Dd2JmCua0e3j2w8Ez+k08iJ26jEHPuCUX2Vpfrq6JFMjnJRlsk3R+86Inxkx3NtqvK/nzOguCZ6KIdJDokM0m4WCVPCSm5tcpHuGMYvA5T+nruqDvszxQuYblfhUODyYkWi2jv0FfOQZB+PbwGTVJIIrAKvnpxl8MBS9z6Pdjicn5mfMUvKWJcScivko8nwSr5WTxO4EAhF2eSou4vQqSWwx1nTglO/nk+y9JNSaogFKn9ZQTM+S2QEOukpQEFqWt0B8HOw5Tmh8LVgeqSF8/vV0/+37fF9i3WByvpxh90kfYuQ==;31:A+UtZqpL320GXjHNcr5StW5/6s+Uf0SbJWwJE5lpf6Ime0gNQwL1WdonWR2eFnV3SYcjIDfF7ae3EwozTVRXbJ1S5A57f0pP5Ik21nq+KeOJg9jH25rNMpC8/8LTFvE2IG+5BqslOstVjKPAqWKJZ5P1wV7uwpCXjnMwG8B01g7SljMUIBLBOWVJo8PTfAd00kjYBarf+51SGcUhw/d+CtkfQi6JeWTg3PydJTugZig= X-MS-TrafficTypeDiagnostic: DM5PR07MB3497: X-Microsoft-Exchange-Diagnostics: 1;DM5PR07MB3497;20:Bjrz3EVa2+uvLj1P8t9rnGZHkmGpEK+Mnf/nS5gGosHqAyhvBOTaIXTpdaLqmJitshjq7yUe0vsuaisp1Kf8qbRKC1pqCYXHIhle9NVq1KqWfD2xJ4FreQkJyHSfmkZeUR4VqNqYuE6TCcwEwAZVyuAAzHpLQ7QW74Pvy64l2DcZNQh5zdRwQkZoiot/hoxjJZIMuKJYd+4prg6lSK46hMLmtDnrK2Bib5hhEGdvydZq3PjtN+pZxXMiqa27+7wwS07ZeSjMAMM/6/awSP9/qWWd/0n82CpZcwCmTYB5kNFOvEaTwVNDhlNUa7OAJ0JezCmXVko+AlDHcaGhT4udMHb6YLIZRgRy1SO5DaHbgZ2zqH0FIlG6spQeIL6JwcgnObRFgLjCFBTRCMi5GXPFyM8BPbyNGuy3HnzMMrS8TxEyN6613fbtp7b/YWGFUHguoedAERBhUt4LYxMvifuoAV/MrqpuZY3ekkDVRffvUdgnkiQPlc500EQDt8EJUxfanO4sfPdlZfGvBRNPA3ome3q76sNnNyEwB4geChxV2Hg+PUapHazv5HVp/THfybE8Cvs9F6RqsMa0geX+l5U5Pyp3IZzQWZrqbHOX0t3Teu0=;4:qvrrzeJdXN08X9IAZJyXtvsDcUcjT/AwRPi7Wivd2BApe4ua122/YQjJBYJNYo3OvtS2nagaoTu/Bk5JI05qssg3I7YFIg8UPqJGyFdXO6HBWTWYBrDT8QcvLn+PkB6R0CaK4d2rWVjr1Nal25DAaUwBepsswJoWYJdwG8/gIyQzlrt4pfwZvxEKLulUsTxI48UDmpbxWJQ35G/AqwIGTLIo/DCOJqbpdMNaFPOjDNWqS3wuN0BNC+Sii1oySJ7n X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(10201501046)(3002001)(100000703101)(100105400095)(93006095)(6041248)(20161123555025)(20161123564025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DM5PR07MB3497;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DM5PR07MB3497; X-Forefront-PRVS: 04569283F9 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(376002)(346002)(199003)(377454003)(24454002)(189002)(2906002)(81166006)(6506006)(3846002)(6116002)(25786009)(47776003)(65806001)(66066001)(65956001)(33646002)(31696002)(97736004)(36756003)(7736002)(23676002)(83506001)(189998001)(106356001)(230700001)(53416004)(316002)(16526018)(72206003)(50466002)(6666003)(69596002)(6246003)(39060400002)(53936002)(105586002)(58126008)(229853002)(305945005)(6512007)(6486002)(4326008)(65826007)(64126003)(54356999)(8936002)(478600001)(5660300001)(50986999)(68736007)(53546010)(76176999)(81156014)(101416001)(31686004)(110136005)(2950100002)(42882006)(8676002);DIR:OUT;SFP:1101;SCL:1;SRVR:DM5PR07MB3497;H:ddl.caveonetworks.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTVQUjA3TUIzNDk3OzIzOjJrVlJaelRHTFNGb0kxYVFJTVd3NG9iVnZB?= =?utf-8?B?R0Z0KzNBWUFJeGtka00rUDRnT2NYRy9UL0Vrc2xINldkb3kwL0dETnZaUDhz?= =?utf-8?B?VzFISEZ2ZEFhbE9Da0twa3B0MnFoTGpGZjcya2dQNHRmdHhnZ3VyNXUwOG04?= =?utf-8?B?NE9Sa2RUMHo5ckxUVUxPWkFiczEvZ1Bxd1hTcE93OURXZjZPMHJ4WG0vcU9Y?= =?utf-8?B?bG5GNEZhZTRzTkM0VHVUcmZSSTlaR1VTcmczamtSc0RUQ3dIZm1VblluWFVk?= =?utf-8?B?UC9vRnNhRjNHQ1JCVkwwQU9OMGUyUmNVZTBhTkVrTW9uMk5zc2drSXNYUGxG?= =?utf-8?B?WiswMXFMMzdMMDhRSHhQd251SlJtU2ZsdURaNkgybmRFOHZJajUxZ3JPRTE2?= =?utf-8?B?dTdYejVrV05UN2tPWXFDWGMyVnhYLzh6UHpESzlscDVhUDlpRG5Sd0JnQy9r?= =?utf-8?B?OEIxSXdYc0FNU3RIUW9Ld3BRSU1hdm1NdTNCeC9WRWNnUEFQUzRmUlJTTFlG?= =?utf-8?B?bkY2L2UzTnpwZFdpdGEvYW5PZlRHeERsVDZLem1UcVZBQ2Y1VVJhSUpCZmZB?= =?utf-8?B?L2lFMFRXeko5R3JUb1k1bVdnT1FvYk13c3QvL2pkYXJ0Y1Y5N1JpR0swN2J5?= =?utf-8?B?ZGRvV3R4eWttZmR3bTltNXBjOXR3N3ZJVERWTkZ3TDRNL0EybjVxWEZFNGpi?= =?utf-8?B?dDdHWG9rNi9DQ3dOQnhMZnVwM3IzeEJ4ZUw3THZXRjVLWm5OYy8yZUNzajhI?= =?utf-8?B?QWJPRW4vVWpPQzkxaHE1YXVzY1Erb3Y3akVqWXEyMnluazczTUtiOGpncVlP?= =?utf-8?B?RS9lSEF2Q25MWkkzeC8rL1loTUdvN1k3WkRuUS9acTJZYyswbzRGdmxMdUsx?= =?utf-8?B?dGhUcXNIZjFqc2pKdXl3YW1ETkRjd0dqM2h2ODZDaU96czVNeVNOdWc2ZXVE?= =?utf-8?B?ZHpvTmtBaDB1cWlpZDFUQzB4UnV3bkVBbkFqYmt2MGhsZnRnQVZrTHJiMjRM?= =?utf-8?B?RkMrRGFzQ0k0ZUZNNjMvWk1SbmxlbjNheXlCUnFGWW10anRpNHpnVEVLendk?= =?utf-8?B?cnBtalJUYS84bDgwOFNkLzcraEJjdjlLUk84K3p5VjFqRDlUUTJWU3V3dXBJ?= =?utf-8?B?U2dVYVRYZkpTVWZrY1NVNjBjL3EzTXlDRXYzQnVYcEljYUQ5TDl0K3BTaU45?= =?utf-8?B?UVVqYU9TZEVqTXJ2ODRIM3V6MENWSXJrU29hWmVWTmcyandqVVJDVEgyM3Q1?= =?utf-8?B?YXZGWWlQYXgwTUQ1Y2d2ME56emNycm5FTVFrTkh6R3pOaFlRd3RCVUxHUUlD?= =?utf-8?B?VmlPMTIrOWdHd1JlK1dVUWR3VXorN3BzVEhHOHFOQzNFVVdNYSt5Uk9UWlJt?= =?utf-8?B?UGcwMm5LOHFSeCtxOEVPbTYvQzErN3BIQS9zcW9tVzgrWURDRHZvcTJlejdF?= =?utf-8?B?ZWpzblRKdU9BMzBTaUZkdWs0ZUcrNDR5U2NkWFAwb0Z4TTV2SzA2TFdmZGd4?= =?utf-8?B?UUo2djhFblBPd3VkUU1hSnJzSkRZanRBbkVIcDIrNUZpU2E0WU5OR1V1V1RP?= =?utf-8?B?OThqZVd4aDJXT25ZNStiTXFQOFJpVkdxL3I2UHhsOEZUOXZ2WmxhRUNPU08x?= =?utf-8?B?MHMxdHRKNGNWbmFVdVo4LzNoYUhPa252MXRuUE1UVTYyQm5SZTl1ZXRsZTJ6?= =?utf-8?B?Z28rNEhpNTJWSmZibDgzVXJabEVlRXMzSzkzbCs2RnBvemhRTmdEeFRDOGw2?= =?utf-8?B?T3pwaXJSNlFPemRTanBDRk9XUjVvOEhuN0VGODM2aE5WcU1QVkMvRWp3bWo4?= =?utf-8?B?OGJvbWtVZzVJeWV5VTBDa28xVU82ZmZDand5cmsvUXNUOWFQR0NuWEE4ZmVY?= =?utf-8?Q?g/e3r1JynAaJ1N2lDOxeE4tmR7wb5+Rx?= X-Microsoft-Exchange-Diagnostics: 1;DM5PR07MB3497;6:vb8ZRlJYOcRAIIdk8PQAeea3G6c+zLy9+HTF2fZBmqu37fWiPUjTndzJeJvYxY/BsrTwgmQJFlXxNlAhvZiBkwHKzqphuQUnsZ6z+XETgQBP+yCYp3NsM6ak/aeeka7dlyIanDpV1qSkxzh48EObASbByhOpAv57VdhHItCYS/JAuS6QHFQSFiwbaGKvmEJJLJKCM3S98TAMfiJFliLEoKB1DutseTQPZuV8cicV6yCHhe/lIyU84erdU2wFh+6aVTaacxgSW7bVnTnJ74HAY/anXSbIHEUyp4yu4Dw7mZ5DfMKQDLwF+rRRmYGQ72JeoTuvdVr2nn3rMY5B0EQGrw==;5:6NJ6MaK/TCCtxgchA0jF0NxvpytAeRE5hPwnSbtuTXAOSdbmP7mQ4IP4m7sW+FHC6Ft1QcDJAeigufu1uG/k+cu4pav//fYIaW/Gy5VsoeGGcqx4WNNG1g5/EWYRjsjduc1qttNKZd72oobeDgfzcw==;24:MxtofVEa/sWmbHQmdckceLJORHkJCfiTAGJKoGitw5RHdjsvagOHSyuJ/1npQB2hebaEaoHPNNofzYJioS/V1yqIUp1UCNkPO75UBHSeMik=;7:mcK8RV153eImCdTfVjuwEiurLe65Xg8Q/AOdd23tZJ/Od6tDd4t+HqJN0/Ykp0aO4F/J/ScBrmTHJZ5PZVwT7kzQOtzuPDtnVHynE1PK7REiGS8EUoMr+rJvQG/umteSoL6ePHf8yCCqpOqSt++8aOcOaou23DfqqbDDy+lyDGavpueLCmmbPQLufxg/+Hb3ItaYNscFpny864ZMGyarnwW5yEXmuVoFSA+07rrIOjk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Oct 2017 21:37:54.4070 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR07MB3497 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/10/2017 10:19 AM, Stephen Hemminger wrote: > On Tue, 10 Oct 2017 12:58:52 +0530 > Christina Jacob wrote: > >> +/* Get the mac address of the interface given interface name */ >> +static long *getmac(char *iface) >> +{ >> + int fd; >> + struct ifreq ifr; >> + long *mac = NULL; >> + >> + fd = socket(AF_INET, SOCK_DGRAM, 0); >> + ifr.ifr_addr.sa_family = AF_INET; >> + strncpy(ifr.ifr_name, iface, IFNAMSIZ - 1); >> + ioctl(fd, SIOCGIFHWADDR, &ifr); >> + mac = (long *)ifr.ifr_hwaddr.sa_data; >> + close(fd); >> + return mac; > > Always check return value of ioctl. > You are assuming sizeof(long) > 6 bytes. > Also the byte order. Also: Returning the address of a local variable (ifr.ifr_hwaddr.sa_data), and then dereferencing it outside of the function is not correct. The casting of the char sa_data[] to a long * may cause alignment faults on some architectures. The may also be endinaness issues depending on how the data are manipulated if you pack all those chars into a long. If we think that a MAC address is char[6], then it may be best to define the data structures as such and manipulate it as an array instead of trying to pack it into a long. Keep working on this though, this program will surely be useful. David Daney