コード例 #1
0
ファイル: pf_q-sock.c プロジェクト: pandaychen/PFQ
int
pfq_sock_tx_unbind(struct pfq_sock *so)
{
	size_t n;

	/* unbind sync Tx queue */

	if (so->opt.txq.def_ifindex != -1) {
		dev_put_by_index(sock_net(&so->sk), so->opt.txq.def_ifindex);
	}

	so->opt.txq.def_ifindex = -1;
	so->opt.txq.def_queue = -1;
	so->opt.txq.def_dev = NULL;

	/* unbind async Tx queue */

	if (pfq_unbind_tx_thread(so) < 0)
		return -EPERM;

	for(n = 0; n < Q_MAX_TX_QUEUES; ++n)
	{
		if (so->opt.txq_async[n].def_ifindex != -1)
			dev_put_by_index(sock_net(&so->sk), so->opt.txq_async[n].def_ifindex);

		so->opt.txq_async[n].def_ifindex = -1;
		so->opt.txq_async[n].def_queue = -1;
		so->opt.txq_async[n].def_dev = NULL;
	}

	return 0;
}
コード例 #2
0
ファイル: sock.c プロジェクト: pfq/PFQ
int
pfq_sock_tx_unbind(struct pfq_sock *so)
{
	size_t n;

	so->tx.ifindex = -1;
	so->tx.queue = -1;

	/* unbind async Tx queue */

	if (pfq_unbind_tx_thread(so) < 0)
		return -EPERM;

	for(n = 0; n < Q_MAX_TX_QUEUES; ++n)
	{
		so->tx_async[n].ifindex = -1;
		so->tx_async[n].queue = -1;
	}

	return 0;
}