Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Jun 2018 19:47:49 GMT
From:      sduo@FreeBSD.org
To:        svn-soc-all@FreeBSD.org
Subject:   socsvn commit: r337263 - in soc2018/sduo: head/sys/dev/vale_vlan head/sys/net head/tools/tools/vale_vlan netmap_utils
Message-ID:  <201806181947.w5IJlnJ6030432@socsvn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: sduo
Date: Mon Jun 18 19:47:46 2018
New Revision: 337263
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=337263

Log:
  Code reformatted using clang-format. fd_server.c almost done.

Added:
  soc2018/sduo/netmap_utils/
  soc2018/sduo/netmap_utils/fd_server.c
  soc2018/sduo/netmap_utils/fd_server.h
Modified:
  soc2018/sduo/head/sys/dev/vale_vlan/vale_vlan.c
  soc2018/sduo/head/sys/dev/vale_vlan/vale_vlan_freebsd.c
  soc2018/sduo/head/sys/dev/vale_vlan/vale_vlan_kern.h
  soc2018/sduo/head/sys/dev/vale_vlan/vv_freebsd_interface.c
  soc2018/sduo/head/sys/dev/vale_vlan/vv_os_interface.h
  soc2018/sduo/head/sys/net/vale_vlan_user.h
  soc2018/sduo/head/tools/tools/vale_vlan/vale-vlan-ctl.c

Modified: soc2018/sduo/head/sys/dev/vale_vlan/vale_vlan.c
==============================================================================
--- soc2018/sduo/head/sys/dev/vale_vlan/vale_vlan.c	Thu Jun 14 01:36:51 2018	(r337262)
+++ soc2018/sduo/head/sys/dev/vale_vlan/vale_vlan.c	Mon Jun 18 19:47:46 2018	(r337263)
@@ -1,24 +1,20 @@
 #include <dev/vale_vlan/vale_vlan_kern.h>
 
-
-
-#define TAG_LENGTH	4
-#define TAG_START	12
-#define TAG_END		(TAG_START + TAG_LENGTH)
-#define TAG_PID		12
-#define TAG_CI		14
-#define TAG_PID_OFFSET	0 /* from start of tag */
-#define TAG_CI_OFFSET	2 /* from start of tag */
-
-
+#define TAG_LENGTH 4
+#define TAG_START 12
+#define TAG_END (TAG_START + TAG_LENGTH)
+#define TAG_PID 12
+#define TAG_CI 14
+#define TAG_PID_OFFSET 0 /* from start of tag */
+#define TAG_CI_OFFSET 2  /* from start of tag */
 
 static int
 tag_frame(struct nm_bdg_fwd *ft, struct netmap_vp_adapter *vpna,
-	uint16_t vlan_id)
+	  uint16_t vlan_id)
 {
 	struct nm_bdg_fwd *ft_end = ft + ft->ft_frags - 1;
 	struct nm_bdg_fwd *ft_cur = NULL;
-	uint8_t *buf = NULL;
+	uint8_t *buf		  = NULL;
 	uint32_t buf_size;
 	uint16_t be_tpid;
 	uint16_t be_tci; /* at the moment PCP and DEI are always set to 0 */
@@ -26,21 +22,21 @@
 
 	buf_size = NETMAP_BUF_SIZE((struct netmap_adapter *)vpna);
 	if (ft_end->ft_len + TAG_LENGTH > buf_size) {
-		D("Not enough space for the tag in the last fragment");
+		nm_prinf("Not enough space for the tag in the last fragment\n");
 		return EINVAL;
 	}
 	if (ft->ft_offset + TAG_END > ft->ft_len) {
-		D("Header split between two nm_bdg_fwd,"
-			"at the moment not supported");
+		nm_prinf("Header split between two nm_bdg_fwd,"
+			 "at the moment not supported\n");
 		return EINVAL;
 	}
 
 	ft_end->ft_len += TAG_LENGTH;
-	for (ft_cur = ft_end; ft_cur != ft-1; --ft_cur) {
+	for (ft_cur = ft_end; ft_cur != ft - 1; --ft_cur) {
 		uint8_t *start_addr = NULL;
-		uint8_t *dest_addr = NULL;
-		uint16_t buf_len = ft_cur->ft_len;
-		buf = ft_cur->ft_buf;
+		uint8_t *dest_addr  = NULL;
+		uint16_t buf_len    = ft_cur->ft_len;
+		buf		    = ft_cur->ft_buf;
 
 		if (ft_cur->ft_flags & NS_INDIRECT) {
 			return EINVAL;
@@ -49,15 +45,15 @@
 			/* copy 4 bytes from the end of the current buffer
 			 * to the beginning of the next buffer
 			 */
-			uint8_t *next_buf = (ft_cur+1)->ft_buf;
-			start_addr = buf + buf_len - TAG_LENGTH;
-			dest_addr = next_buf;
+			uint8_t *next_buf      = (ft_cur + 1)->ft_buf;
+			start_addr	     = buf + buf_len - TAG_LENGTH;
+			dest_addr	      = next_buf;
 			*(uint32_t *)dest_addr = *(uint32_t *)start_addr;
 		}
 
 		start_addr = buf + ft_cur->ft_offset;
-		dest_addr = start_addr + TAG_LENGTH;
-		/* we alredy added TAG_LENGTH to ft_end->ft_len, therefore the
+		dest_addr  = start_addr + TAG_LENGTH;
+		/* we already added TAG_LENGTH to ft_end->ft_len, therefore the
 		 * last fragment case is covered without any additional check
 		 */
 		n_bytes = buf_len - TAG_LENGTH - ft_cur->ft_offset;
@@ -65,57 +61,55 @@
 	}
 
 	/* now we need to write the tag */
-	be_tpid = htobe16(0x8100);
-	be_tci = htobe16(vlan_id);
-	buf = ft->ft_buf;
+	be_tpid					     = htobe16(0x8100);
+	be_tci					     = htobe16(vlan_id);
+	buf					     = ft->ft_buf;
 	*(uint16_t *)(buf + ft->ft_offset + TAG_PID) = be_tpid;
-	*(uint16_t *)(buf + ft->ft_offset + TAG_CI) = be_tci;
+	*(uint16_t *)(buf + ft->ft_offset + TAG_CI)  = be_tci;
 
 	return 0;
 }
 
-
-
 static int
 untag_frame(struct nm_bdg_fwd *ft, struct netmap_vp_adapter *vpna,
-	uint16_t *vlan_id)
+	    uint16_t *vlan_id)
 {
 	struct nm_bdg_fwd *ft_end = ft + ft->ft_frags - 1;
 	struct nm_bdg_fwd *ft_cur = NULL;
-	uint8_t *buf = NULL;
+	uint8_t *buf		  = NULL;
 	uint16_t be_tpid;
 	uint16_t be_tci;
 	int n_bytes = 0;
 
 	if (ft->ft_offset + TAG_END > ft->ft_len) {
-		/* header split between two nm_bdg_fwd,
-		 * at the moment not supported
-		 */
+		/* VLAN header not contained in the first fragment */
 		return EINVAL;
 	}
 	if (ft_end->ft_len < TAG_LENGTH) {
-		/* the last fragment empties and we need to update fragmentation
-		 * flags etc. at the moment we don't handle this case
+		/* During the untagging we strip TAG_LENGTH bytes from the
+		 * frame, therefore in this case last fragment would become
+		 * empty and we would need to update fragmentation flags etc.
+		 * At the moment we don't handle this case.
 		 */
 		return EINVAL;
 	}
 
 	/* first we retrieve the informations we need */
-	buf = ft->ft_buf;
-	be_tpid = *(uint16_t *)(buf + ft->ft_offset + TAG_PID);
-	if (be16toh(be_tpid) != 0x8100) {
-		D("Not an IEEE802.Q frame");
+	buf     = ft->ft_buf + ft->ft_offset;
+	be_tpid = *(uint16_t *)(buf + TAG_PID);
+	if (be_tpid != htobe16(0x8100)) {
+		nm_prinf("Not an IEEE802.Q frame\n");
 		return EINVAL;
 	}
-	be_tci = *(uint16_t *)(buf + ft->ft_offset + TAG_CI);
+	be_tci   = *(uint16_t *)(buf + TAG_CI);
 	*vlan_id = be16toh(be_tci) & 0x0FFF;
 
 	/* then we remove the tag */
-	for (ft_cur = ft; ft_cur != ft_end+1; ++ft_cur) {
+	for (ft_cur = ft; ft_cur != ft_end + 1; ++ft_cur) {
 		uint8_t *start_addr = NULL;
-		uint8_t *dest_addr = NULL;
-		uint16_t buf_len = ft_cur->ft_len;
-		buf = ft_cur->ft_buf;
+		uint8_t *dest_addr  = NULL;
+		uint16_t buf_len    = ft_cur->ft_len;
+		buf		    = ft_cur->ft_buf;
 
 		if (ft_cur->ft_flags & NS_INDIRECT) {
 			/* we do not support indirect userspace buffers */
@@ -126,17 +120,17 @@
 			 * to the end of the previous buffer
 			 */
 			struct nm_bdg_fwd *prev_ft = ft_cur - 1;
-			uint8_t *prev_buf = prev_ft->ft_buf;
-			uint16_t prev_buf_len = prev_ft->ft_len;
+			uint8_t *prev_buf	  = prev_ft->ft_buf;
+			uint16_t prev_buf_len      = prev_ft->ft_len;
 
 			start_addr = buf;
-			dest_addr = prev_buf + prev_buf_len - TAG_LENGTH;
+			dest_addr  = prev_buf + prev_buf_len - TAG_LENGTH;
 			*(uint32_t *)dest_addr = *(uint32_t *)start_addr;
 		}
 
-		dest_addr = buf + ft->ft_offset;
+		dest_addr  = buf + ft->ft_offset;
 		start_addr = dest_addr + TAG_LENGTH;
-		n_bytes = buf_len - TAG_LENGTH - ft->ft_offset;
+		n_bytes    = buf_len - TAG_LENGTH - ft->ft_offset;
 		memmove(dest_addr, start_addr, n_bytes);
 	}
 
@@ -144,17 +138,19 @@
 	return 0;
 }
 
-
-
+/* Core data structure used by tagging bridges to forward frames.
+ *
+ * trunk port: index of the trunk port inside the tagging VALE bridge
+ * port_to_vlan_id: translates a port index to its corresponding vlan id
+ * vlan_id_to_port: translates a vlan id to its corresponding port index
+ */
 struct vlan_lookup_data {
 	uint32_t trunk_port;
-	uint16_t port_to_vlan[NM_BDG_MAXPORTS];
-	uint32_t vlan_to_port[MAX_VLAN_ID];
+	uint16_t port_to_vlan_id[NM_BDG_MAXPORTS];
+	uint32_t vlan_id_to_port[VV_MAX_VLAN_ID];
 };
 
-
-
-/* must be called with GLOBAL_LOCK */
+/* must be called with vv_global_lock */
 static void
 initialize_lookup_data(struct vlan_lookup_data *l_data)
 {
@@ -162,73 +158,61 @@
 
 	l_data->trunk_port = NM_BDG_NOPORT;
 	for (i = 0; i < NM_BDG_MAXPORTS; ++i) {
-		l_data->port_to_vlan[i] = 0x000;
+		l_data->port_to_vlan_id[i] = 0x000;
 	}
-	for (i = 0; i < MAX_VLAN_ID; ++i) {
-		l_data->vlan_to_port[i] = NM_BDG_NOPORT;
+	for (i = 0; i < VV_MAX_VLAN_ID; ++i) {
+		l_data->vlan_id_to_port[i] = NM_BDG_NOPORT;
 	}
 }
 
-
-
 struct port_elem {
 	struct port port_desc;
 	vv_list_entry(port_elem) list;
 };
 
-
-
-/* for each vlan conf there is only one 'modified bridge',
+/* for each vlan conf there is only one tagging bridge,
  * therefore we can store a lookup data structure directly inside
  * the struct which describes the configuration
  */
 struct vale_vlan_conf {
 	struct vlan_lookup_data l_data;
 	char conf_name[NETMAP_REQ_IFNAMSIZ];
-	void *vlan_bdg_auth_tokens[MAX_VLAN_ID];
+	void *vlan_bdg_auth_tokens[VV_MAX_VLAN_ID];
 	void *mod_bdg_auth_token;
-	uint32_t number_of_ports[MAX_VLAN_ID];
+	uint32_t number_of_ports[VV_MAX_VLAN_ID];
 	vv_list_declare(list_head, port_elem) port_list;
 };
 
-
-
 /* there is one 'vlan_id bridge' with a specific vlan_id per configuration,
  * therefore we only need the configuration name and vlan_id to create
  * a unique bridge name
  */
 static inline void
 get_vlan_bdg_name(char *bridge_name, size_t len, const char *conf_name,
-	uint16_t vlan_id)
+		  uint16_t vlan_id)
 {
 
 	snprintf(bridge_name, len, "valeV%d%s:", vlan_id, conf_name);
 }
 
-
-
 static inline void
 get_ap_name(char *port_name, size_t len, const char *conf_name,
-	uint16_t vlan_id)
+	    uint16_t vlan_id)
 {
 
 	snprintf(port_name, len, "%sAP%d", conf_name, vlan_id);
 }
 
-
-
-/* there is one 'modified bridge' per configuration, therefore we
+/* there is one tagging bridge per configuration, therefore we
  * only need the configuration name to create a unique bridge name
  */
 static inline void
-get_modified_bdg_name(char *bridge_name, size_t len, const char *conf_name)
+get_tagging_bdg_name(char *bridge_name, size_t len, const char *conf_name)
 {
 
 	snprintf(bridge_name, len, "valeV%sTP:", conf_name);
 }
 
-
-
 static void
 initialize_conf(struct vale_vlan_conf *conf)
 {
@@ -241,105 +225,95 @@
 	vv_list_head_init(&conf->port_list);
 }
 
-
-
 static uint32_t
 vlan_lookup(struct nm_bdg_fwd *ft, uint8_t *dst_ring,
-	struct netmap_vp_adapter *vpna, void *lookup_data)
+	    struct netmap_vp_adapter *vpna, void *lookup_data)
 {
 	struct vlan_lookup_data *l_data = lookup_data;
-	uint32_t bdg_port = vpna->bdg_port;
-	uint32_t dest_port = NM_BDG_NOPORT;
-	uint16_t vlan_id = 0x000;
+	uint32_t bdg_port		= vpna->bdg_port;
+	uint32_t dest_port		= NM_BDG_NOPORT;
+	uint16_t vlan_id		= 0x000;
 	const char *bdg_name;
 	int ret = 0;
 
 	bdg_name = netmap_bdg_name(vpna);
 
-	if (ft->ft_flags & NS_INDIRECT) {
+	if (unlikely(ft->ft_flags & NS_INDIRECT)) {
 		/* we do not handle userspace indirect buffers */
 		return NM_BDG_NOPORT;
 	}
-	
+
 	if (bdg_port == l_data->trunk_port) {
 		ret = untag_frame(ft, vpna, &vlan_id);
 		if (ret) {
 			return NM_BDG_NOPORT;
 		}
 
-		dest_port = l_data->vlan_to_port[vlan_id];
+		dest_port = l_data->vlan_id_to_port[vlan_id];
 	} else {
-		vlan_id = l_data->port_to_vlan[bdg_port];
-		ret = tag_frame(ft, vpna, vlan_id);
+		vlan_id = l_data->port_to_vlan_id[bdg_port];
+		ret     = tag_frame(ft, vpna, vlan_id);
 		if (ret) {
 			return NM_BDG_NOPORT;
 		}
-		
+
 		dest_port = l_data->trunk_port;
 	}
 
 	return dest_port;
 }
 
-
-
 static struct netmap_bdg_ops vlan_ops = {vlan_lookup, NULL, NULL};
 
-
-
 static inline int
 modify_bdg(struct vale_vlan_conf *conf, const char *bdg_name)
 {
 
-	D("Trying to modify bdg '%s' for conf '%s'", bdg_name, conf->conf_name);
+	nm_prinf("Trying to modify bdg %s for conf %s\n", bdg_name,
+		 conf->conf_name);
 	return netmap_bdg_regops(bdg_name, &vlan_ops, &conf->l_data,
-		conf->mod_bdg_auth_token);
+				 conf->mod_bdg_auth_token);
 }
 
-
-
 static inline int
 reset_bdg(struct vale_vlan_conf *conf, const char *bdg_name)
 {
 
-	D("Trying to reset bdg '%s' for conf '%s'", bdg_name, conf->conf_name);
+	nm_prinf("Trying to reset bdg %s for conf %s\n", bdg_name,
+		 conf->conf_name);
 	return netmap_bdg_regops(bdg_name, NULL, NULL,
-		conf->mod_bdg_auth_token);
+				 conf->mod_bdg_auth_token);
 }
 
-
-
 #define MAX_VLAN_CONFS 4
 /* used to access currently active vlan confs */
 static uint16_t vlan_conf_index[MAX_VLAN_CONFS];
 static struct vale_vlan_conf vlan_confs[MAX_VLAN_CONFS];
-static uint16_t active_vlan_conf = 0;
-
-
+static uint16_t num_active_vlan_confs = 0;
 
 /* Fails if conf alredy exists or we're out of space */
 static int
 vale_vlan_create_conf(const char *conf_name, uint16_t *conf_index)
 {
 	uint16_t free_conf = MAX_VLAN_CONFS;
-	char modified_bdg_name[IF_NAMESIZE];
+	char tagging_bdg_name[NETMAP_REQ_IFNAMSIZ];
 	struct vale_vlan_conf *conf = NULL;
-	void *auth_token = NULL;
-	int ret = 0;
+	void *auth_token	    = NULL;
+	int ret			    = 0;
 	int i;
 
-	if (active_vlan_conf == MAX_VLAN_CONFS) {
+	if (num_active_vlan_confs == MAX_VLAN_CONFS) {
 		nm_prinf("vale_vlan: maximum number of"
-			"configurations reached\n");
+			 "configurations reached\n");
 		return ENOMEM;
 	}
 
 	for (i = 0; i < MAX_VLAN_CONFS; ++i) {
-		if (strncmp(vlan_confs[i].conf_name,
-			    conf_name,
+		if (strncmp(vlan_confs[i].conf_name, conf_name,
 			    sizeof(vlan_confs[i].conf_name)) == 0) {
 			nm_prinf("vale_vlan: a configuration named"
-				"'%s' alredy exists\n", conf_name);
+				 "%s alredy exists\n",
+				 conf_name);
 			return EEXIST;
 		} else if (vlan_confs[i].conf_name[0] == '\0') {
 			/* a free slot is represented by an empty conf_name */
@@ -348,141 +322,134 @@
 	}
 
 	/* create bridge in exclusive mode */
-	get_modified_bdg_name(modified_bdg_name, sizeof(modified_bdg_name),
-		conf_name);
-	auth_token = netmap_bdg_create(modified_bdg_name, &ret);
+	get_tagging_bdg_name(tagging_bdg_name, sizeof(tagging_bdg_name),
+			     conf_name);
+	auth_token = netmap_bdg_create(tagging_bdg_name, &ret);
 	if (auth_token == NULL || ret != 0) {
-		D("Error %d during bridge '%s' creation",
-			ret, modified_bdg_name);
+		nm_prerr("Error %d during bridge %s creation\n", ret,
+			 tagging_bdg_name);
 		return ret;
 	}
 
-	vlan_conf_index[active_vlan_conf++] = free_conf;
-	conf = &vlan_confs[free_conf];
+	vlan_conf_index[num_active_vlan_confs++] = free_conf;
+	conf					 = &vlan_confs[free_conf];
 	initialize_conf(conf);
 	strncpy(conf->conf_name, conf_name, sizeof(conf->conf_name));
 	/* makes sure the string is null-byte ended */
-	conf->conf_name[sizeof(conf->conf_name)-1] = '\0';
-	conf->mod_bdg_auth_token = auth_token;
-	*conf_index = free_conf;
+	conf->conf_name[sizeof(conf->conf_name) - 1] = '\0';
+	conf->mod_bdg_auth_token		     = auth_token;
+	*conf_index				     = free_conf;
 
-	ret = modify_bdg(conf, modified_bdg_name);
+	ret = modify_bdg(conf, tagging_bdg_name);
 	if (ret) {
 		int ret2;
-		D("Error %d during bridge '%s' regops()",
-			ret, modified_bdg_name);
-		ret2 = netmap_bdg_destroy(modified_bdg_name,
-			conf->mod_bdg_auth_token);
+		nm_prerr("Error %d during bridge %s regops()\n", ret,
+			 tagging_bdg_name);
+		ret2 = netmap_bdg_destroy(tagging_bdg_name,
+					  conf->mod_bdg_auth_token);
 		if (ret2) {
 			/* cannot happen */
-			D("Error %d during bridge '%s' destroy(), "
-				"this should never happen",
-				ret2, modified_bdg_name);
+			nm_prerr("Error %d during bridge %s destroy(), "
+				 "this should never happen\n",
+				 ret2, tagging_bdg_name);
 		}
 		initialize_conf(conf);
-		--active_vlan_conf;
+		--num_active_vlan_confs;
 		return ret;
 	}
 	vv_try_module_get();
 
 	nm_prinf("vale_vlan: successfully created "
-		"configuration '%s'\n", conf_name);
+		 "configuration %s\n",
+		 conf_name);
 	return 0;
 }
 
-
-
 /* Fails if the conf doesn't exist
  *
- * must be called with GLOBAL_LOCK
+ * must be called with vv_global_lock
  */
 static int
 vale_vlan_select_conf(const char *conf_name, uint16_t *conf_index)
 {
 	int i;
 
-	for (i = 0; i < active_vlan_conf; ++i) {
+	for (i = 0; i < num_active_vlan_confs; ++i) {
 		int index = vlan_conf_index[i];
-		if (strncmp(vlan_confs[index].conf_name,
-			    conf_name,
+		if (strncmp(vlan_confs[index].conf_name, conf_name,
 			    sizeof(vlan_confs[index].conf_name)) == 0) {
 			*conf_index = index;
 			nm_prinf("vale_vlan: successfully selected "
-				"configuration '%s'\n", conf_name);
+				 "configuration %s\n",
+				 conf_name);
 			return 0;
 		}
 	}
 
-	nm_prinf("vale_vlan: a configuration named '%s' doesn't exist\n",
-		conf_name);
+	nm_prinf("vale_vlan: a configuration named %s doesn't exist\n",
+		 conf_name);
 	return ENXIO;
 }
 
-
-
-/* Fails if the conf doesn't exist or the modified bridge isn't empty
+/* Fails if the conf doesn't exist or the tagging bridge isn't empty
  *
- * must be called with GLOBAL_LOCK
+ * must be called with vv_global_lock
  */
 static int
 vale_vlan_delete_conf(const char *conf_name)
 {
 	uint16_t conf_index = MAX_VLAN_CONFS;
-	char modified_bdg_name[IF_NAMESIZE];
+	char tagging_bdg_name[NETMAP_REQ_IFNAMSIZ];
 	struct vale_vlan_conf *conf = NULL;
 	uint16_t i;
 	int ret;
 
-	for (i = 0; i < active_vlan_conf; ++i) {
+	for (i = 0; i < num_active_vlan_confs; ++i) {
 		int index = vlan_conf_index[i];
-		if (strncmp(vlan_confs[index].conf_name,
-			    conf_name,
+		if (strncmp(vlan_confs[index].conf_name, conf_name,
 			    sizeof(vlan_confs[index].conf_name)) == 0) {
-			conf = &vlan_confs[index];
+			conf       = &vlan_confs[index];
 			conf_index = i;
 			break;
 		}
 	}
 
-	if (!conf || i == active_vlan_conf) {
+	if (!conf || i == num_active_vlan_confs) {
 		/* conf doesn't exist */
 		return ENXIO;
 	}
 
 	/* redundant check */
-	for (i = 0; i < MAX_VLAN_ID; ++i) {
+	for (i = 0; i < VV_MAX_VLAN_ID; ++i) {
 		if (conf->number_of_ports[i] != 0) {
-			D("conf->number_of_ports[%d] = %d",
-				i, conf->number_of_ports[i]);
 			return EBUSY;
 		}
 	}
 
-	get_modified_bdg_name(modified_bdg_name, sizeof(modified_bdg_name),
-		conf_name);
-	ret = netmap_bdg_destroy(modified_bdg_name,
-		conf->mod_bdg_auth_token);
+	get_tagging_bdg_name(tagging_bdg_name, sizeof(tagging_bdg_name),
+			     conf_name);
+	ret = netmap_bdg_destroy(tagging_bdg_name, conf->mod_bdg_auth_token);
 	if (ret) {
 		/* cannot happen (?) */
-		D("Error %d during bridge '%s' destroy(), SHOULD NOT HAPPEN",
-			ret, modified_bdg_name);
+		nm_prerr("Error %d during bridge %s destroy(), "
+			 "this should not happend\n",
+			 ret, tagging_bdg_name);
 		return ret;
 	}
 
-	conf->conf_name[0] = '\0';	/* marks conf slot as free */
-	vlan_conf_index[conf_index] = vlan_conf_index[--active_vlan_conf];
+	conf->conf_name[0]	  = '\0'; /* marks conf slot as free */
+	vlan_conf_index[conf_index] = vlan_conf_index[--num_active_vlan_confs];
 	vv_module_put();
 	return 0;
 }
 
-
-/* returns 0 if conf_index isn't a possible index or if 
+/* returns 0 if conf_index isn't a possible index or if
  * the conf entry isn't in use
  *
- * must be called with GLOBAL_LOCK
+ * must be called with vv_global_lock
  */
 static int
-does_conf_exist(int conf_index)
+conf_exists(int conf_index)
 {
 
 	if (conf_index < 0 || conf_index >= MAX_VLAN_CONFS) {
@@ -491,25 +458,19 @@
 	return vlan_confs[conf_index].conf_name[0] != '\0';
 }
 
-
-
 #define NM_API_VERSION 12
 
-
-
 static void *
 modify_trunk_port(void *private_data, void *callback_data, int *error)
 {
 	struct vlan_lookup_data *l_data = private_data;
-	uint32_t *new_trunk_port = callback_data;
+	uint32_t *new_trunk_port	= callback_data;
 
 	l_data->trunk_port = *new_trunk_port;
-	*error = 0;
+	*error		   = 0;
 	return l_data;
 }
 
-
-
 struct mod_access_port {
 	uint32_t old_port_index;
 	uint32_t new_port_index;
@@ -517,72 +478,65 @@
 	uint16_t new_vlan_id;
 };
 
-
-
 static void *
 modify_access_port(void *private_data, void *callback_data, int *error)
 {
 	struct vlan_lookup_data *l_data = private_data;
-	struct mod_access_port *mod = callback_data;
+	struct mod_access_port *mod     = callback_data;
 
-	l_data->port_to_vlan[mod->old_port_index] = mod->new_vlan_id;
-	l_data->vlan_to_port[mod->old_vlan_id] = mod->new_port_index;
-	*error = 0;
+	l_data->port_to_vlan_id[mod->old_port_index] = mod->new_vlan_id;
+	l_data->vlan_id_to_port[mod->old_vlan_id]    = mod->new_port_index;
+	*error					     = 0;
 	return l_data;
 }
 
-
-
 static int
-create_vale_port(const char* name)
+create_vale_port(const char *name)
 {
 	struct nmreq_vale_newif newif;
 	struct nmreq_header hdr;
 	int ret = 0;
 
-	D("Trying to create port '%s'", name);
+	nm_prinf("Trying to create port %s\n", name);
 
 	bzero(&hdr, sizeof(hdr));
 	hdr.nr_version = NM_API_VERSION;
 	hdr.nr_reqtype = NETMAP_REQ_VALE_NEWIF;
 	strncpy(hdr.nr_name, name, sizeof(hdr.nr_name));
-	hdr.nr_name[sizeof(hdr.nr_name)-1] = '\0';
+	hdr.nr_name[sizeof(hdr.nr_name) - 1] = '\0';
 
 	bzero(&newif, sizeof(newif));
-	hdr.nr_body = (uint64_t)&newif;
+	hdr.nr_body = (uintptr_t)&newif;
 
 	ret = nm_vi_create(&hdr);
 	if (ret == 0) {
 		vv_try_module_get();
 	} else {
-		D("Error %d during port '%s' nm_vi_create()", ret, name);
+		nm_prerr("Error %d during port %s nm_vi_create()\n", ret, name);
 	}
 
 	return ret;
 }
 
-
-
 static int
-destroy_vale_port(const char* name)
+destroy_vale_port(const char *name)
 {
 	int ret;
 
-	D("Trying to destroy port '%s'", name);
+	nm_prinf("Trying to destroy port %s\n", name);
 	ret = nm_vi_destroy(name);
 	if (ret == 0) {
 		vv_module_put();
 	} else {
-		D("Error %d during port '%s' nm_vi_destroy()", ret, name);
+		nm_prerr("Error %d during port %s nm_vi_destroy()\n", ret,
+			 name);
 	}
 	return ret;
 }
 
-
-
 static int
 attach_port_list(struct vale_vlan_conf *conf, const char *bdg_name,
-    const char *port_name, uint8_t port_type, uint16_t vlan_id)
+		 const char *port_name, uint8_t port_type, uint16_t vlan_id)
 {
 	struct port_elem *p_elem = NULL;
 
@@ -592,28 +546,26 @@
 	}
 
 	vv_list_elem_init(p_elem, list);
-	p_elem->port_desc.vlan_id = vlan_id;
+	p_elem->port_desc.vlan_id   = vlan_id;
 	p_elem->port_desc.port_type = port_type;
-	snprintf(p_elem->port_desc.bdg_name,
-		sizeof(p_elem->port_desc.bdg_name), "%s", bdg_name);
+	snprintf(p_elem->port_desc.bdg_name, sizeof(p_elem->port_desc.bdg_name),
+		 "%s", bdg_name);
 	snprintf(p_elem->port_desc.port_name,
-		sizeof(p_elem->port_desc.port_name), "%s", port_name);
+		 sizeof(p_elem->port_desc.port_name), "%s", port_name);
 	vv_list_insert_head(&conf->port_list, p_elem, list);
 	return 0;
 }
 
-
-
 static int
 detach_port_list(struct vale_vlan_conf *conf, const char *port_name)
 {
 	struct port_elem *cursor = NULL;
-	struct port_elem *next = NULL;
+	struct port_elem *next   = NULL;
 
-	vv_list_foreach_safe(cursor, &conf->port_list, list, next) {
-		if (strncmp(cursor->port_desc.port_name,
-			    port_name) == 0
-			    sizeof(cursor->port_desc.port_name)) {
+	vv_list_foreach_safe(cursor, &conf->port_list, list, next)
+	{
+		if (strncmp(cursor->port_desc.port_name, port_name,
+			    sizeof(cursor->port_desc.port_name)) == 0) {
 			vv_list_remove(cursor, list);
 			vv_free(cursor);
 			return 0;
@@ -623,57 +575,50 @@
 	return ENXIO;
 }
 
-
-
 static int detach_trunk_port(struct vale_vlan_conf *, const char *, uint16_t);
-static int detach_vlan_port(struct vale_vlan_conf *, const char *, uint16_t);
-
-
+static int detach_access_port(struct vale_vlan_conf *, const char *, uint16_t);
 
 static int
 attach_port(const char *bdg_name, const char *port_name, void *auth_token,
-	uint32_t *port_index)
+	    uint32_t *port_index)
 {
 	struct nmreq_vale_attach nmr_att;
 	struct nmreq_header hdr;
 	int ret = 0;
 
-	D("Trying to attach port '%s%s'", bdg_name, port_name);
+	nm_prinf("Trying to attach port %s%s\n", bdg_name, port_name);
 	bzero(&nmr_att, sizeof(nmr_att));
 	nmr_att.reg.nr_mode = NR_REG_ALL_NIC;
 
 	bzero(&hdr, sizeof(hdr));
 	hdr.nr_version = NM_API_VERSION;
 	hdr.nr_reqtype = NETMAP_REQ_VALE_ATTACH;
-	hdr.nr_body = (uint64_t)&nmr_att;
+	hdr.nr_body    = (uintptr_t)&nmr_att;
 	snprintf(hdr.nr_name, sizeof(hdr.nr_name), "%s%s", bdg_name, port_name);
 
 	ret = nm_bdg_ctl_attach(&hdr, auth_token);
 	if (ret == 0) {
 		vv_try_module_get();
-
 	}
 	*port_index = nmr_att.port_index;
 	return ret;
 }
 
-
-
 static int
 detach_port(const char *bdg_name, const char *port_name, void *auth_token,
-	uint32_t *port_index)
+	    uint32_t *port_index)
 {
 	struct nmreq_vale_detach nmr_det;
 	struct nmreq_header hdr;
 	int ret = 0;
 
-	D("Trying to detach port %s%s", bdg_name, port_name);
+	nm_prinf("Trying to detach port %s%s\n", bdg_name, port_name);
 	bzero(&nmr_det, sizeof(nmr_det));
 
 	bzero(&hdr, sizeof(hdr));
 	hdr.nr_version = NM_API_VERSION;
 	hdr.nr_reqtype = NETMAP_REQ_VALE_DETACH;
-	hdr.nr_body = (uint64_t)&nmr_det;
+	hdr.nr_body    = (uintptr_t)&nmr_det;
 	snprintf(hdr.nr_name, sizeof(hdr.nr_name), "%s%s", bdg_name, port_name);
 
 	ret = nm_bdg_ctl_detach(&hdr, auth_token);
@@ -684,29 +629,27 @@
 	return ret;
 }
 
-
-
 static int
-attach_vlan_port(struct vale_vlan_conf *conf, const char *port_name,
-	uint16_t vlan_id)
+attach_access_port(struct vale_vlan_conf *conf, const char *port_name,
+		   uint16_t vlan_id)
 {
 	void *vlan_bdg_auth_token = conf->vlan_bdg_auth_tokens[vlan_id];
-	uint32_t port_index = NM_BDG_NOPORT;
-	char modified_bdg_name[IF_NAMESIZE];
-	char vlan_bdg_name[IF_NAMESIZE];
+	uint32_t port_index       = NM_BDG_NOPORT;
+	char tagging_bdg_name[NETMAP_REQ_IFNAMSIZ];
+	char vlan_bdg_name[NETMAP_REQ_IFNAMSIZ];
 	struct mod_access_port mod_ap;
-	char ap_name[IF_NAMESIZE];
+	char ap_name[NETMAP_REQ_IFNAMSIZ];
 	int ret = 0;
 
-	D("Trying to attach port '%s' with vlan id: %d to conf '%s'",
-		port_name, vlan_id, conf->conf_name);
-	if (vlan_id == 0x000 || vlan_id == 0xFFF) {
+	nm_prinf("Trying to attach port %s with vlan id: %d to conf %s\n",
+		 port_name, vlan_id, conf->conf_name);
+	if (vlan_id == 0xFFF) {
 		return EINVAL;
 	}
-	get_modified_bdg_name(modified_bdg_name, sizeof(modified_bdg_name),
-		conf->conf_name);
+	get_tagging_bdg_name(tagging_bdg_name, sizeof(tagging_bdg_name),
+			     conf->conf_name);
 	get_vlan_bdg_name(vlan_bdg_name, sizeof(vlan_bdg_name), conf->conf_name,
-		vlan_id);
+			  vlan_id);
 
 	if (conf->number_of_ports[vlan_id] == 0) {
 		/* we need to create a bridge in exclusive mode */
@@ -719,47 +662,47 @@
 	}
 
 	ret = attach_port(vlan_bdg_name, port_name, vlan_bdg_auth_token,
-		&port_index);
+			  &port_index);
 	if (ret) {
 		goto l_destroy_vlan_bdg;
 	}
 
 	if (++conf->number_of_ports[vlan_id] != 1) {
 		/* an access port has alredy been created and attached to the
-		 * modified bridge
+		 * tagging bridge
 		 */
 		return ret;
 	}
 
 	/* we need to create an access port and attach it
-	 * to the modified bridge
+	 * to the tagging bridge
 	 */
 	get_ap_name(ap_name, sizeof(ap_name), conf->conf_name, vlan_id);
 	ret = create_vale_port(ap_name);
 	if (ret) {
-		goto l_detach_vlan_port;
+		goto l_detach_access_port;
 	}
 
 	ret = attach_port(vlan_bdg_name, ap_name, vlan_bdg_auth_token,
-		&port_index);
+			  &port_index);
 	if (ret) {
 		goto l_destroy_access_port;
 	}
 
-	ret = attach_port(modified_bdg_name, ap_name,
-		conf->mod_bdg_auth_token, &port_index);
+	ret = attach_port(tagging_bdg_name, ap_name, conf->mod_bdg_auth_token,
+			  &port_index);
 	if (ret) {
 		goto l_detach_access_port_vlan_bdg;
 	}
 
-	/* this can fail only if bdg_name doesn't exist or hasn't been modified
+	/* this can fail only if bdg_name doesn't exist or hasn't been tagging
 	 * by us, and in either case we would have alredy failed one of our
 	 * previous call
 	 */
 	mod_ap.old_port_index = mod_ap.new_port_index = port_index;
 	mod_ap.old_vlan_id = mod_ap.new_vlan_id = vlan_id;
-	nm_bdg_update_private_data(modified_bdg_name, modify_access_port,
-		&mod_ap, conf->mod_bdg_auth_token);
+	nm_bdg_update_private_data(tagging_bdg_name, modify_access_port,
+				   &mod_ap, conf->mod_bdg_auth_token);
 
 	return ret;
 
@@ -771,7 +714,7 @@
 	/* cannot fail */
 	destroy_vale_port(ap_name);
 
-l_detach_vlan_port:
+l_detach_access_port:
 	/* cannot fail */
 	detach_port(vlan_bdg_name, port_name, vlan_bdg_auth_token, &port_index);
 	--conf->number_of_ports[vlan_id];
@@ -789,79 +732,73 @@
 	return ret;
 }
 
-
-
 static int
 attach_trunk_port(struct vale_vlan_conf *conf, const char *port_name,
-	uint16_t vlan_id)
+		  uint16_t vlan_id)
 {
 	uint32_t port_index = NM_BDG_NOPORT;
-	char mod_bdg_name[IF_NAMESIZE];
+	char mod_bdg_name[NETMAP_REQ_IFNAMSIZ];
 	int ret = 0;
 
 	if (vlan_id != 0xFFF || conf->l_data.trunk_port != NM_BDG_NOPORT) {
 		return EINVAL;
 	}
 
-	get_modified_bdg_name(mod_bdg_name, sizeof(mod_bdg_name),
-		conf->conf_name);
+	get_tagging_bdg_name(mod_bdg_name, sizeof(mod_bdg_name),
+			     conf->conf_name);
 	ret = attach_port(mod_bdg_name, port_name, conf->mod_bdg_auth_token,
-		&port_index);
+			  &port_index);
 	if (ret) {
 		return ret;
 	}
 
 	/* this can't fail because we have the bridge in exclusive mode */
-	nm_bdg_update_private_data(mod_bdg_name, modify_trunk_port,
-		&port_index, conf->mod_bdg_auth_token);
+	nm_bdg_update_private_data(mod_bdg_name, modify_trunk_port, &port_index,
+				   conf->mod_bdg_auth_token);
 	return ret;
 }
 
-
-
-
 static int
 action_attach(struct vale_vlan_conf *conf, const char *port_name,
-	uint8_t port_type, uint16_t vlan_id)
+	      uint8_t port_type, uint16_t vlan_id)
 {
-	char bdg_name[IF_NAMESIZE];
+	char bdg_name[NETMAP_REQ_IFNAMSIZ];
 	int ret = 0;
 
-	switch (port_type){
+	switch (port_type) {
 	case TRUNK_PORT:
 		ret = attach_trunk_port(conf, port_name, vlan_id);

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201806181947.w5IJlnJ6030432>