From owner-freebsd-net@FreeBSD.ORG Mon Apr 15 17:52:39 2013 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id EEAACB7E for ; Mon, 15 Apr 2013 17:52:39 +0000 (UTC) (envelope-from sodynet1@gmail.com) Received: from mail-pa0-f52.google.com (mail-pa0-f52.google.com [209.85.220.52]) by mx1.freebsd.org (Postfix) with ESMTP id C473D111A for ; Mon, 15 Apr 2013 17:52:39 +0000 (UTC) Received: by mail-pa0-f52.google.com with SMTP id fb10so2688514pad.11 for ; Mon, 15 Apr 2013 10:52:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:date:message-id:subject:from:to :content-type; bh=aloX4L2ZJmy8mCPAgU9PneZ7L1/UzszCvfX0ZhhjzIQ=; b=LENIxoVtYlzMhv3TywTZ81EbHRy/LMtohy8JiDyQ/wcVB/ah8GWqEKR8HktJU4pyM6 ZPw1yGsSQim2RAdoPphCMAx6VbzC+2Iw4WbHgKOV0EGUx8fKZxMPL0Yu7cIylVcNGRBH ZukBjmR0leD1AWblyshK446ED6pBmGgq3jphTbFpVsl6TAReoX1/RerXXVUbtRKY/mCC jKrZR8e+buSe5pAnZpchZIXE1rxFiZdj0tmF5oLOWd11X4TzjTSEVQUAstfp6QYBqjlw Ez2xPqnYdMfaN1URXZeMaIPWq/hI4hFyuZMIH1GQv1UippqiwR64RQZV0ci7Eh1SCj0s a80g== MIME-Version: 1.0 X-Received: by 10.68.44.169 with SMTP id f9mr17820797pbm.29.1366048358950; Mon, 15 Apr 2013 10:52:38 -0700 (PDT) Received: by 10.70.100.132 with HTTP; Mon, 15 Apr 2013 10:52:38 -0700 (PDT) Date: Mon, 15 Apr 2013 20:52:38 +0300 Message-ID: Subject: using netmap From: Sami Halabi To: Luigi Rizzo , "freebsd-net@freebsd.org" Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.14 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Apr 2013 17:52:40 -0000 Hi, I would like to start using netmap. as a start i copied the example from netmap page: #include #include #include #include int main() { struct netmap_if *nifp; struct nmreq req; int i, len; char *buf; FILE* fd; fd = open("/dev/netmap", 0); strcpy(req.nr_name, "em1"); // register the interface ioctl(fd, NIOCREG, &req); // offset of the structure mem = mmap(NULL, req.nr_memsize, PROT_READ|PROT_WRITE, 0, fd, 0); nifp = NETMAP_IF(mem, req.nr_offset); for (;;) { struct pollfd x[1]; struct netmap_ring *ring = NETMAP_RX_RING(nifp, 0); x[0].fd = fd; x[0].events = POLLIN; poll(x, 1, 1000); for ( ; ring->avail > 0 ; ring->avail--) { i = ring->cur; buf = NETMAP_BUF(ring, i); use_data(buf, ring->slot[i].len); ring->cur = NETMAP_NEXT(ring, i); } } return 0; } and tried to compile: root@fbsd1:~/netmap # gcc -O2 -pipe -Werror -Wall -I ../sys -Wextra -c n.c In file included from n.c:4: /usr/include/net/netmap.h:139: error: expected specifier-qualifier-list before 'uint32_t' /usr/include/net/netmap.h:228: error: expected ':', ',', ';', '}' or '__attribute__' before 'num_slots' /usr/include/net/netmap.h:255: error: 'IFNAMSIZ' undeclared here (not in a function) /usr/include/net/netmap.h:256: error: expected ':', ',', ';', '}' or '__attribute__' before 'ni_version' /usr/include/net/netmap.h:292: error: expected specifier-qualifier-list before 'uint32_t' cc1: warnings being treated as errors n.c: In function 'main': n.c:14: warning: implicit declaration of function 'open' n.c:14: warning: assignment makes pointer from integer without a cast n.c:15: warning: implicit declaration of function 'strcpy' n.c:15: warning: incompatible implicit declaration of built-in function 'strcpy' n.c:16: warning: implicit declaration of function 'ioctl' n.c:16: error: 'NIOCREG' undeclared (first use in this function) n.c:16: error: (Each undeclared identifier is reported only once n.c:16: error: for each function it appears in.) n.c:17: error: 'mem' undeclared (first use in this function) n.c:17: error: 'struct nmreq' has no member named 'nr_memsize' n.c:17: error: 'PROT_READ' undeclared (first use in this function) n.c:17: error: 'PROT_WRITE' undeclared (first use in this function) n.c:17: warning: passing argument 5 of 'mmap' makes integer from pointer without a cast n.c:18: error: 'struct nmreq' has no member named 'nr_offset' n.c:20: error: array type has incomplete element type n.c:21: warning: implicit declaration of function 'NETMAP_RX_RING' n.c:21: warning: initialization makes pointer from integer without a cast n.c:24: error: 'POLLIN' undeclared (first use in this function) n.c:25: warning: implicit declaration of function 'poll' n.c:26: error: 'struct netmap_ring' has no member named 'avail' n.c:26: error: 'struct netmap_ring' has no member named 'avail' n.c:27: error: 'struct netmap_ring' has no member named 'cur' n.c:28: error: 'struct netmap_ring' has no member named 'nr_buf_size' n.c:29: warning: implicit declaration of function 'use_data' n.c:29: error: 'struct netmap_ring' has no member named 'slot' n.c:30: error: 'struct netmap_ring' has no member named 'cur' n.c:30: warning: implicit declaration of function 'NETMAP_NEXT' n.c:20: warning: unused variable 'x' n.c:10: warning: unused variable 'len' root@fbsd1:~/netmap # can you help me figure it out? Thanks in advance, -- Sami Halabi Information Systems Engineer NMS Projects Expert FreeBSD SysAdmin Expert