Exemple #1
0
void nat25_db_cleanup(_adapter *priv)
{
	int i;
	_irqL irqL;
	_enter_critical_bh(&priv->br_ext_lock, &irqL);

	for (i=0; i<NAT25_HASH_SIZE; i++)
	{
		struct nat25_network_db_entry *f;
		f = priv->nethash[i];
		while (f != NULL) {
			struct nat25_network_db_entry *g;

			g = f->next_hash;
			if (priv->scdb_entry == f)
			{
				memset(priv->scdb_mac, 0, ETH_ALEN);
				memset(priv->scdb_ip, 0, 4);
				priv->scdb_entry = NULL;
			}
			__network_hash_unlink(f);
			rtw_mfree((u8 *) f, sizeof(struct nat25_network_db_entry));

			f = g;
		}
	}

	_exit_critical_bh(&priv->br_ext_lock, &irqL);
}
Exemple #2
0
void nat25_db_cleanup(_adapter *priv)
{
	int i;
	_irqL irqL;
	_enter_critical_bh(&priv->br_ext_lock, &irqL);

	for(i=0; i<NAT25_HASH_SIZE; i++)
	{
		struct nat25_network_db_entry *f, *g;
		for (f = priv->nethash[i]; f != NULL; f = g) {
			g = f->next_hash;
			if (priv->scdb_entry == f)
			{
				set_zero_mac_addr(priv->scdb_mac);
				RTW_WN32(priv->scdb_ip, 0);
				priv->scdb_entry = NULL;
			}
			__network_hash_unlink(f);
			rtw_mfree((u8 *) f, sizeof(struct nat25_network_db_entry));
		}
	}

	_exit_critical_bh(&priv->br_ext_lock, &irqL);
}
Exemple #3
0
void nat25_db_expire(_adapter *priv)
{
	int i;
	_irqL irqL;
	_enter_critical_bh(&priv->br_ext_lock, &irqL);

	/* if (!priv->ethBrExtInfo.nat25_disable) */
	{
		for (i=0; i<NAT25_HASH_SIZE; i++)
		{
			struct nat25_network_db_entry *f;
			f = priv->nethash[i];

			while (f != NULL)
			{
				struct nat25_network_db_entry *g;
				g = f->next_hash;

				if (__nat25_has_expired(priv, f))
				{
					if (atomic_dec_and_test(&f->use_count))
					{
#ifdef BR_EXT_DEBUG
						panic_printk("NAT25 Expire H(%02d) M:%02x%02x%02x%02x%02x%02x N:%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x"
								"%02x%02x%02x%02x%02x%02x\n",
							i,
							f->macAddr[0],
							f->macAddr[1],
							f->macAddr[2],
							f->macAddr[3],
							f->macAddr[4],
							f->macAddr[5],
							f->networkAddr[0],
							f->networkAddr[1],
							f->networkAddr[2],
							f->networkAddr[3],
							f->networkAddr[4],
							f->networkAddr[5],
							f->networkAddr[6],
							f->networkAddr[7],
							f->networkAddr[8],
							f->networkAddr[9],
							f->networkAddr[10],
							f->networkAddr[11],
							f->networkAddr[12],
							f->networkAddr[13],
							f->networkAddr[14],
							f->networkAddr[15],
							f->networkAddr[16]);
#endif
						if (priv->scdb_entry == f) {
							memset(priv->scdb_mac, 0, ETH_ALEN);
							memset(priv->scdb_ip, 0, 4);
							priv->scdb_entry = NULL;
						}
						__network_hash_unlink(f);
						rtw_mfree((u8 *) f, sizeof(struct nat25_network_db_entry));
					}
				}
				f = g;
			}
		}
	}

	_exit_critical_bh(&priv->br_ext_lock, &irqL);
}
Exemple #4
0
void nat25_db_expire(_adapter *priv)
{
	int i;
	_irqL irqL;
	_enter_critical_bh(&priv->br_ext_lock, &irqL);

	//if(!priv->ethBrExtInfo.nat25_disable)
	{
		for (i=0; i<NAT25_HASH_SIZE; i++)
		{
			struct nat25_network_db_entry *f, *g;

			for (f = priv->nethash[i]; f != NULL; f = g) {
				g = f->next_hash;

				if(__nat25_has_expired(priv, f))
				{
					if(atomic_dec_and_test(&f->use_count))
					{
#ifdef BR_EXT_DEBUG
#ifdef CL_IPV6_PASS
						panic_printk("NAT25 Expire H(%02d) M:%02x%02x%02x%02x%02x%02x N:%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x"
								"%02x%02x%02x%02x%02x%02x\n",
							i,
							f->macAddr[0],
							f->macAddr[1],
							f->macAddr[2],
							f->macAddr[3],
							f->macAddr[4],
							f->macAddr[5],
							f->networkAddr[0],
							f->networkAddr[1],
							f->networkAddr[2],
							f->networkAddr[3],
							f->networkAddr[4],
							f->networkAddr[5],
							f->networkAddr[6],
							f->networkAddr[7],
							f->networkAddr[8],
							f->networkAddr[9],
							f->networkAddr[10],
							f->networkAddr[11],
							f->networkAddr[12],
							f->networkAddr[13],
							f->networkAddr[14],
							f->networkAddr[15],
							f->networkAddr[16]);
#else

						panic_printk("NAT25 Expire H(%02d) M:%02x%02x%02x%02x%02x%02x N:%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x\n",
							i,
							f->macAddr[0],
							f->macAddr[1],
							f->macAddr[2],
							f->macAddr[3],
							f->macAddr[4],
							f->macAddr[5],
							f->networkAddr[0],
							f->networkAddr[1],
							f->networkAddr[2],
							f->networkAddr[3],
							f->networkAddr[4],
							f->networkAddr[5],
							f->networkAddr[6],
							f->networkAddr[7],
							f->networkAddr[8],
							f->networkAddr[9],
							f->networkAddr[10]);
#endif
#endif
						if(priv->scdb_entry == f)
						{
							set_zero_mac_addr(priv->scdb_mac);
							RTW_WN32(priv->scdb_ip, 0);
							priv->scdb_entry = NULL;
						}
						__network_hash_unlink(f);
						rtw_mfree((u8 *) f, sizeof(struct nat25_network_db_entry));
					}
				}
			}
		}
	}

	_exit_critical_bh(&priv->br_ext_lock, &irqL);
}