svn commit: r366498 - stable/12/tools/tools/netmap

Vincenzo Maffione vmaffione at FreeBSD.org
Tue Oct 6 19:14:05 UTC 2020


Author: vmaffione
Date: Tue Oct  6 19:14:03 2020
New Revision: 366498
URL: https://svnweb.freebsd.org/changeset/base/366498

Log:
  MFC r366393
  
  netmap: tools: fix several compiler warnings
  
  MFC after:      1 week

Modified:
  stable/12/tools/tools/netmap/Makefile
  stable/12/tools/tools/netmap/bridge.c
  stable/12/tools/tools/netmap/ctrs.h
  stable/12/tools/tools/netmap/lb.c
  stable/12/tools/tools/netmap/nmreplay.c
  stable/12/tools/tools/netmap/pkt-gen.c
  stable/12/tools/tools/netmap/pkt_hash.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/tools/tools/netmap/Makefile
==============================================================================
--- stable/12/tools/tools/netmap/Makefile	Tue Oct  6 19:12:43 2020	(r366497)
+++ stable/12/tools/tools/netmap/Makefile	Tue Oct  6 19:14:03 2020	(r366498)
@@ -21,6 +21,8 @@ LDFLAGS += -lm # used by nmreplay
 .include <bsd.prog.mk>
 .include <bsd.lib.mk>
 
+CFLAGS += -Wno-cast-align
+
 all: $(PROGS)
 
 pkt-gen: pkt-gen.o

Modified: stable/12/tools/tools/netmap/bridge.c
==============================================================================
--- stable/12/tools/tools/netmap/bridge.c	Tue Oct  6 19:12:43 2020	(r366497)
+++ stable/12/tools/tools/netmap/bridge.c	Tue Oct  6 19:14:03 2020	(r366498)
@@ -14,7 +14,7 @@
 #include <net/netmap_user.h>
 #include <sys/poll.h>
 
-int verbose = 0;
+static int verbose = 0;
 
 static int do_abort = 0;
 static int zerocopy = 1; /* enable zerocopy if possible */
@@ -31,7 +31,7 @@ sigint_h(int sig)
 /*
  * how many packets on this set of queues ?
  */
-int
+static int
 pkt_queued(struct nm_desc *d, int tx)
 {
 	u_int i, tot = 0;

Modified: stable/12/tools/tools/netmap/ctrs.h
==============================================================================
--- stable/12/tools/tools/netmap/ctrs.h	Tue Oct  6 19:12:43 2020	(r366497)
+++ stable/12/tools/tools/netmap/ctrs.h	Tue Oct  6 19:14:03 2020	(r366498)
@@ -18,12 +18,12 @@ struct my_ctrs {
  * Caller has to make sure that the buffer is large enough.
  */
 static const char *
-norm2(char *buf, double val, char *fmt, int normalize)
+norm2(char *buf, double val, const char *fmt, int normalize)
 {
-	char *units[] = { "", "K", "M", "G", "T" };
+	const char *units[] = { "", "K", "M", "G", "T" };
 	u_int i;
 	if (normalize)
-		for (i = 0; val >=1000 && i < sizeof(units)/sizeof(char *) - 1; i++)
+		for (i = 0; val >=1000 && i < sizeof(units)/sizeof(const char *) - 1; i++)
 			val /= 1000;
 	else
 		i=0;

Modified: stable/12/tools/tools/netmap/lb.c
==============================================================================
--- stable/12/tools/tools/netmap/lb.c	Tue Oct  6 19:12:43 2020	(r366497)
+++ stable/12/tools/tools/netmap/lb.c	Tue Oct  6 19:14:03 2020	(r366498)
@@ -89,7 +89,7 @@ struct compact_ipv6_hdr {
 #define BUF_REVOKE	100
 #define STAT_MSG_MAXSIZE 1024
 
-struct {
+static struct {
 	char ifname[MAX_IFNAMELEN];
 	char base_name[MAX_IFNAMELEN];
 	int netmap_fd;
@@ -115,7 +115,7 @@ struct overflow_queue {
 	uint32_t size;
 };
 
-struct overflow_queue *freeq;
+static struct overflow_queue *freeq;
 
 static inline int
 oq_full(struct overflow_queue *q)
@@ -160,12 +160,12 @@ oq_deq(struct overflow_queue *q)
 
 static volatile int do_abort = 0;
 
-uint64_t dropped = 0;
-uint64_t forwarded = 0;
-uint64_t received_bytes = 0;
-uint64_t received_pkts = 0;
-uint64_t non_ip = 0;
-uint32_t freeq_n = 0;
+static uint64_t dropped = 0;
+static uint64_t forwarded = 0;
+static uint64_t received_bytes = 0;
+static uint64_t received_pkts = 0;
+static uint64_t non_ip = 0;
+static uint32_t freeq_n = 0;
 
 struct port_des {
 	char interface[MAX_PORTNAMELEN];
@@ -178,7 +178,7 @@ struct port_des {
 	struct group_des *group;
 };
 
-struct port_des *ports;
+static struct port_des *ports;
 
 /* each group of pipes receives all the packets */
 struct group_des {
@@ -190,7 +190,7 @@ struct group_des {
 	int custom_port;
 };
 
-struct group_des *groups;
+static struct group_des *groups;
 
 /* statistcs */
 struct counters {
@@ -205,7 +205,7 @@ struct counters {
 #define COUNTERS_FULL	1
 };
 
-struct counters counters_buf;
+static struct counters counters_buf;
 
 static void *
 print_stats(void *arg)
@@ -387,7 +387,7 @@ static void sigint_h(int sig)
 	signal(SIGINT, SIG_DFL);
 }
 
-void usage()
+static void usage()
 {
 	printf("usage: lb [options]\n");
 	printf("where options are:\n");
@@ -404,9 +404,9 @@ void usage()
 }
 
 static int
-parse_pipes(char *spec)
+parse_pipes(const char *spec)
 {
-	char *end = index(spec, ':');
+	const char *end = index(spec, ':');
 	static int max_groups = 0;
 	struct group_des *g;
 
@@ -458,7 +458,8 @@ parse_pipes(char *spec)
 }
 
 /* complete the initialization of the groups data structure */
-void init_groups(void)
+static void
+init_groups(void)
 {
 	int i, j, t = 0;
 	struct group_des *g = NULL;
@@ -484,7 +485,8 @@ void init_groups(void)
  * chain headed by g.
  * Return a free buffer.
  */
-uint32_t forward_packet(struct group_des *g, struct netmap_slot *rs)
+static uint32_t
+forward_packet(struct group_des *g, struct netmap_slot *rs)
 {
 	uint32_t hash = rs->ptr;
 	uint32_t output_port = hash % g->nports;
@@ -886,7 +888,6 @@ run:
 		 */
 		for (i = glob_arg.num_groups - 1U; i > 0; i--) {
 			struct group_des *g = &groups[i - 1];
-			int j;
 
 			for (j = 0; j < g->nports; j++) {
 				struct port_des *p = &g->ports[j];
@@ -917,7 +918,7 @@ run:
 			for (i = 0; i < npipes; i++) {
 				struct port_des *p = &ports[i];
 				struct overflow_queue *q = p->oq;
-				uint32_t j, lim;
+				uint32_t k, lim;
 				struct netmap_ring *ring;
 				struct netmap_slot *slot;
 
@@ -929,7 +930,7 @@ run:
 					continue;
 				if (q->n < lim)
 					lim = q->n;
-				for (j = 0; j < lim; j++) {
+				for (k = 0; k < lim; k++) {
 					struct netmap_slot s = oq_deq(q), tmp;
 					tmp.ptr = 0;
 					slot = &ring->slot[ring->head];

Modified: stable/12/tools/tools/netmap/nmreplay.c
==============================================================================
--- stable/12/tools/tools/netmap/nmreplay.c	Tue Oct  6 19:12:43 2020	(r366497)
+++ stable/12/tools/tools/netmap/nmreplay.c	Tue Oct  6 19:14:03 2020	(r366498)
@@ -431,7 +431,7 @@ readpcap(const char *fn)
 
 enum my_pcap_mode { PM_NONE, PM_FAST, PM_FIXED, PM_REAL };
 
-int verbose = 0;
+static int verbose = 0;
 
 static int do_abort = 0;
 
@@ -988,7 +988,8 @@ usage(void)
 static char **
 split_arg(const char *src, int *_ac)
 {
-    char *my = NULL, **av = NULL, *seps = " \t\r\n,";
+    char *my = NULL, **av = NULL;
+    const char *seps = " \t\r\n,";
     int l, i, ac; /* number of entries */
 
     if (!src)
@@ -1127,15 +1128,15 @@ main(int argc, char **argv)
 
 	/* set default values */
 	for (i = 0; i < N_OPTS; i++) {
-	    struct _qs *q = &bp[i].q;
+	    struct _qs *qs = &bp[i].q;
 
-	    q->burst = 128;
-	    q->c_delay.optarg = "0";
-	    q->c_delay.run = null_run_fn;
-	    q->c_loss.optarg = "0";
-	    q->c_loss.run = null_run_fn;
-	    q->c_bw.optarg = "0";
-	    q->c_bw.run = null_run_fn;
+	    qs->burst = 128;
+	    qs->c_delay.optarg = "0";
+	    qs->c_delay.run = null_run_fn;
+	    qs->c_loss.optarg = "0";
+	    qs->c_loss.run = null_run_fn;
+	    qs->c_bw.optarg = "0";
+	    qs->c_bw.run = null_run_fn;
 	}
 
 	// Options:
@@ -1250,10 +1251,10 @@ main(int argc, char **argv)
 
 	/* apply commands */
 	for (i = 0; i < N_OPTS; i++) { /* once per queue */
-		struct _qs *q = &bp[i].q;
-		err += cmd_apply(delay_cfg, d[i], q, &q->c_delay);
-		err += cmd_apply(bw_cfg, b[i], q, &q->c_bw);
-		err += cmd_apply(loss_cfg, l[i], q, &q->c_loss);
+		struct _qs *qs = &bp[i].q;
+		err += cmd_apply(delay_cfg, d[i], qs, &qs->c_delay);
+		err += cmd_apply(bw_cfg, b[i], qs, &qs->c_bw);
+		err += cmd_apply(loss_cfg, l[i], qs, &qs->c_loss);
 	}
 
 	pthread_create(&bp[0].cons_tid, NULL, nmreplay_main, (void*)&bp[0]);
@@ -1287,7 +1288,7 @@ main(int argc, char **argv)
  * the final entry has s = NULL.
  */
 struct _sm {	/* string and multiplier */
-	char *s;
+	const char *s;
 	double m;
 };
 

Modified: stable/12/tools/tools/netmap/pkt-gen.c
==============================================================================
--- stable/12/tools/tools/netmap/pkt-gen.c	Tue Oct  6 19:12:43 2020	(r366497)
+++ stable/12/tools/tools/netmap/pkt-gen.c	Tue Oct  6 19:14:03 2020	(r366498)
@@ -42,7 +42,6 @@
 #define NETMAP_WITH_LIBS
 #include <net/netmap_user.h>
 
-
 #include <ctype.h>	// isprint()
 #include <unistd.h>	// sysconf()
 #include <sys/poll.h>
@@ -179,14 +178,14 @@ static inline void CPU_SET(uint32_t i, cpuset_t *p)
 	do {struct timespec t0 = {0,0}; *(b) = t0; } while (0)
 #endif  /* __APPLE__ */
 
-const char *default_payload="netmap pkt-gen DIRECT payload\n"
+static const char *default_payload = "netmap pkt-gen DIRECT payload\n"
 	"http://info.iet.unipi.it/~luigi/netmap/ ";
 
-const char *indirect_payload="netmap pkt-gen indirect payload\n"
+static const char *indirect_payload = "netmap pkt-gen indirect payload\n"
 	"http://info.iet.unipi.it/~luigi/netmap/ ";
 
-int verbose = 0;
-int normalize = 1;
+static int verbose = 0;
+static int normalize = 1;
 
 #define VIRT_HDR_1	10	/* length of a base vnet-hdr */
 #define VIRT_HDR_2	12	/* length of the extenede vnet-hdr */
@@ -218,7 +217,7 @@ struct pkt {
     ((af) == AF_INET ? (p)->ipv4.f: (p)->ipv6.f)
 
 struct ip_range {
-	char *name;
+	const char *name;
 	union {
 		struct {
 			uint32_t start, end; /* same as struct in_addr */
@@ -232,7 +231,7 @@ struct ip_range {
 };
 
 struct mac_range {
-	char *name;
+	const char *name;
 	struct ether_addr start, end;
 };
 
@@ -295,7 +294,7 @@ struct glob_arg {
 	int td_type;
 	void *mmap_addr;
 	char ifname[MAX_IFNAMELEN];
-	char *nmr_config;
+	const char *nmr_config;
 	int dummy_send;
 	int virt_header;	/* send also the virt_header */
 	char *packet_file;	/* -P option */
@@ -620,7 +619,7 @@ system_ncpus(void)
  * If there is no 4th number, then the 3rd is assigned to both #tx-rings
  * and #rx-rings.
  */
-int
+static int
 parse_nmr_config(const char* conf, struct nmreq *nmr)
 {
 	char *w, *tok;
@@ -727,7 +726,7 @@ checksum(const void *data, uint16_t len, uint32_t sum)
 
 	/* Checksum all the pairs of bytes first... */
 	for (i = 0; i < (len & ~1U); i += 2) {
-		sum += (u_int16_t)ntohs(*((u_int16_t *)(addr + i)));
+		sum += (uint16_t)ntohs(*((const uint16_t *)(addr + i)));
 		if (sum > 0xFFFF)
 			sum -= 0xFFFF;
 	}
@@ -1241,7 +1240,7 @@ send_packets(struct netmap_ring *ring, struct pkt *pkt
 /*
  * Index of the highest bit set
  */
-uint32_t
+static uint32_t
 msb64(uint64_t x)
 {
 	uint64_t m = 1ULL << 63;
@@ -2695,7 +2694,7 @@ main_thread(struct glob_arg *g)
 
 struct td_desc {
 	int ty;
-	char *key;
+	const char *key;
 	void *f;
 	int default_burst;
 };
@@ -2715,7 +2714,7 @@ tap_alloc(char *dev)
 {
 	struct ifreq ifr;
 	int fd, err;
-	char *clonedev = TAP_CLONEDEV;
+	const char *clonedev = TAP_CLONEDEV;
 
 	(void)err;
 	(void)dev;

Modified: stable/12/tools/tools/netmap/pkt_hash.c
==============================================================================
--- stable/12/tools/tools/netmap/pkt_hash.c	Tue Oct  6 19:12:43 2020	(r366497)
+++ stable/12/tools/tools/netmap/pkt_hash.c	Tue Oct  6 19:14:03 2020	(r366498)
@@ -145,7 +145,7 @@ static uint32_t decode_gre_hash(const uint8_t *, uint8
  ** Parser + hash function for the IPv4 packet
  **/
 static uint32_t
-decode_ip_n_hash(struct ip *iph, uint8_t hash_split, uint8_t seed)
+decode_ip_n_hash(const struct ip *iph, uint8_t hash_split, uint8_t seed)
 {
 	uint32_t rc = 0;
 
@@ -155,19 +155,19 @@ decode_ip_n_hash(struct ip *iph, uint8_t hash_split, u
 			ntohs(0xFFFD) + seed,
 			ntohs(0xFFFE) + seed);
 	} else {
-		struct tcphdr *tcph = NULL;
-		struct udphdr *udph = NULL;
+		const struct tcphdr *tcph = NULL;
+		const struct udphdr *udph = NULL;
 
 		switch (iph->ip_p) {
 		case IPPROTO_TCP:
-			tcph = (struct tcphdr *)((uint8_t *)iph + (iph->ip_hl<<2));
+			tcph = (const struct tcphdr *)((const uint8_t *)iph + (iph->ip_hl<<2));
 			rc = sym_hash_fn(ntohl(iph->ip_src.s_addr),
 					 ntohl(iph->ip_dst.s_addr),
 					 ntohs(tcph->th_sport) + seed,
 					 ntohs(tcph->th_dport) + seed);
 			break;
 		case IPPROTO_UDP:
-			udph = (struct udphdr *)((uint8_t *)iph + (iph->ip_hl<<2));
+			udph = (const struct udphdr *)((const uint8_t *)iph + (iph->ip_hl<<2));
 			rc = sym_hash_fn(ntohl(iph->ip_src.s_addr),
 					 ntohl(iph->ip_dst.s_addr),
 					 ntohs(udph->uh_sport) + seed,
@@ -175,11 +175,11 @@ decode_ip_n_hash(struct ip *iph, uint8_t hash_split, u
 			break;
 		case IPPROTO_IPIP:
 			/* tunneling */
-			rc = decode_ip_n_hash((struct ip *)((uint8_t *)iph + (iph->ip_hl<<2)),
+			rc = decode_ip_n_hash((const struct ip *)((const uint8_t *)iph + (iph->ip_hl<<2)),
 					      hash_split, seed);
 			break;
 		case IPPROTO_GRE:
-			rc = decode_gre_hash((uint8_t *)iph + (iph->ip_hl<<2),
+			rc = decode_gre_hash((const uint8_t *)iph + (iph->ip_hl<<2),
 					hash_split, seed);
 			break;
 		case IPPROTO_ICMP:
@@ -205,7 +205,7 @@ decode_ip_n_hash(struct ip *iph, uint8_t hash_split, u
  ** Parser + hash function for the IPv6 packet
  **/
 static uint32_t
-decode_ipv6_n_hash(struct ip6_hdr *ipv6h, uint8_t hash_split, uint8_t seed)
+decode_ipv6_n_hash(const struct ip6_hdr *ipv6h, uint8_t hash_split, uint8_t seed)
 {
 	uint32_t saddr, daddr;
 	uint32_t rc = 0;
@@ -226,19 +226,19 @@ decode_ipv6_n_hash(struct ip6_hdr *ipv6h, uint8_t hash
 				 ntohs(0xFFFD) + seed,
 				 ntohs(0xFFFE) + seed);
 	} else {
-		struct tcphdr *tcph = NULL;
-		struct udphdr *udph = NULL;
+		const struct tcphdr *tcph = NULL;
+		const struct udphdr *udph = NULL;
 
 		switch(ntohs(ipv6h->ip6_ctlun.ip6_un1.ip6_un1_nxt)) {
 		case IPPROTO_TCP:
-			tcph = (struct tcphdr *)(ipv6h + 1);
+			tcph = (const struct tcphdr *)(ipv6h + 1);
 			rc = sym_hash_fn(ntohl(saddr),
 					 ntohl(daddr),
 					 ntohs(tcph->th_sport) + seed,
 					 ntohs(tcph->th_dport) + seed);
 			break;
 		case IPPROTO_UDP:
-			udph = (struct udphdr *)(ipv6h + 1);
+			udph = (const struct udphdr *)(ipv6h + 1);
 			rc = sym_hash_fn(ntohl(saddr),
 					 ntohl(daddr),
 					 ntohs(udph->uh_sport) + seed,
@@ -246,16 +246,16 @@ decode_ipv6_n_hash(struct ip6_hdr *ipv6h, uint8_t hash
 			break;
 		case IPPROTO_IPIP:
 			/* tunneling */
-			rc = decode_ip_n_hash((struct ip *)(ipv6h + 1),
+			rc = decode_ip_n_hash((const struct ip *)(ipv6h + 1),
 					      hash_split, seed);
 			break;
 		case IPPROTO_IPV6:
 			/* tunneling */
-			rc = decode_ipv6_n_hash((struct ip6_hdr *)(ipv6h + 1),
+			rc = decode_ipv6_n_hash((const struct ip6_hdr *)(ipv6h + 1),
 						hash_split, seed);
 			break;
 		case IPPROTO_GRE:
-			rc = decode_gre_hash((uint8_t *)(ipv6h + 1), hash_split, seed);
+			rc = decode_gre_hash((const uint8_t *)(ipv6h + 1), hash_split, seed);
 			break;
 		case IPPROTO_ICMP:
 		case IPPROTO_ESP:
@@ -280,7 +280,7 @@ decode_ipv6_n_hash(struct ip6_hdr *ipv6h, uint8_t hash
  *   * (See decode_vlan_n_hash & pkt_hdr_hash functions).
  *    */
 static uint32_t
-decode_others_n_hash(struct ether_header *ethh, uint8_t seed)
+decode_others_n_hash(const struct ether_header *ethh, uint8_t seed)
 {
 	uint32_t saddr, daddr, rc;
 
@@ -305,18 +305,18 @@ decode_others_n_hash(struct ether_header *ethh, uint8_
  ** Parser + hash function for VLAN packet
  **/
 static inline uint32_t
-decode_vlan_n_hash(struct ether_header *ethh, uint8_t hash_split, uint8_t seed)
+decode_vlan_n_hash(const struct ether_header *ethh, uint8_t hash_split, uint8_t seed)
 {
 	uint32_t rc = 0;
-	struct vlanhdr *vhdr = (struct vlanhdr *)(ethh + 1);
+	const struct vlanhdr *vhdr = (const struct vlanhdr *)(ethh + 1);
 
 	switch (ntohs(vhdr->proto)) {
 	case ETHERTYPE_IP:
-		rc = decode_ip_n_hash((struct ip *)(vhdr + 1),
+		rc = decode_ip_n_hash((const struct ip *)(vhdr + 1),
 				      hash_split, seed);
 		break;
 	case ETHERTYPE_IPV6:
-		rc = decode_ipv6_n_hash((struct ip6_hdr *)(vhdr + 1),
+		rc = decode_ipv6_n_hash((const struct ip6_hdr *)(vhdr + 1),
 					hash_split, seed);
 		break;
 	case ETHERTYPE_ARP:
@@ -336,15 +336,15 @@ uint32_t
 pkt_hdr_hash(const unsigned char *buffer, uint8_t hash_split, uint8_t seed)
 {
 	uint32_t rc = 0;
-	struct ether_header *ethh = (struct ether_header *)buffer;
+	const struct ether_header *ethh = (const struct ether_header *)buffer;
 
 	switch (ntohs(ethh->ether_type)) {
 	case ETHERTYPE_IP:
-		rc = decode_ip_n_hash((struct ip *)(ethh + 1),
+		rc = decode_ip_n_hash((const struct ip *)(ethh + 1),
 				      hash_split, seed);
 		break;
 	case ETHERTYPE_IPV6:
-		rc = decode_ipv6_n_hash((struct ip6_hdr *)(ethh + 1),
+		rc = decode_ipv6_n_hash((const struct ip6_hdr *)(ethh + 1),
 					hash_split, seed);
 		break;
 	case ETHERTYPE_VLAN:
@@ -372,15 +372,15 @@ decode_gre_hash(const uint8_t *grehdr, uint8_t hash_sp
 			   !!(*grehdr & 2) + /* Routing */
 			   !!(*grehdr & 4) + /* Key */
 			   !!(*grehdr & 8)); /* Sequence Number */
-	uint16_t proto = ntohs(*(uint16_t *)(void *)(grehdr + 2));
+	uint16_t proto = ntohs(*(const uint16_t *)(const void *)(grehdr + 2));
 
 	switch (proto) {
 	case ETHERTYPE_IP:
-		rc = decode_ip_n_hash((struct ip *)(grehdr + len),
+		rc = decode_ip_n_hash((const struct ip *)(grehdr + len),
 				      hash_split, seed);
 		break;
 	case ETHERTYPE_IPV6:
-		rc = decode_ipv6_n_hash((struct ip6_hdr *)(grehdr + len),
+		rc = decode_ipv6_n_hash((const struct ip6_hdr *)(grehdr + len),
 					hash_split, seed);
 		break;
 	case 0x6558: /* Transparent Ethernet Bridging */


More information about the svn-src-all mailing list