Ejemplo n.º 1
0
void
pktgen_prime_ports(port_info_t * info)
{
	uint8_t		q;

	info->current_tx_count = info->prime_cnt;
	info->transmitting = 1;
	for(q = 0; q < wr_get_port_txcnt(pktgen.l2p, info->pid); q++ )
		pktgen_set_q_flags(info, q, DO_TX_FLUSH);
}
Ejemplo n.º 2
0
void
pktgen_packet_rate(port_info_t *info)
{
	uint64_t wire_size = (pktgen_wire_size(info) * 8);
	uint64_t link = (uint64_t)info->link.link_speed * Million;
	uint64_t pps = ((link / wire_size) * info->tx_rate) / 100;
	uint64_t cpp = (pps > 0) ? (pktgen.hz / pps) : (pktgen.hz / 4);

	info->tx_pps    = pps;
	info->tx_cycles = ((cpp * info->tx_burst) / wr_get_port_txcnt(pktgen.l2p, info->pid));
}
Ejemplo n.º 3
0
void
pktgen_stop_transmitting(port_info_t * info)
{
	uint8_t		q;

	if ( info->transmitting == 1 ) {
		info->transmitting = 0;
		for(q = 0; q < wr_get_port_txcnt(pktgen.l2p, info->pid); q++ )
			pktgen_set_q_flags(info, q, DO_TX_CLEANUP);
	}
}
Ejemplo n.º 4
0
void
pktgen_start_transmitting(port_info_t * info)
{
	uint8_t		q;

	if ( info->transmitting == 0 ) {
		for(q = 0; q < wr_get_port_txcnt(pktgen.l2p, info->pid); q++ )
			pktgen_set_q_flags(info, q, CLEAR_FAST_ALLOC_FLAG);
		info->current_tx_count	= info->transmit_count;
		info->transmitting = 1;
	}
}
Ejemplo n.º 5
0
void
pktgen_packet_rate(port_info_t *info)
{
	/*   0   1   2   3   4   5   6   7   8   9  10 */
	static int64_t ff[11] = { 31, 30, 25, 30, 17, 17, 17, 20, 50, 60, 90 };
	uint64_t wire_size = (pktgen_wire_size(info) * 8);
	uint64_t link = (uint64_t)info->link.link_speed * Million;
	uint64_t pps = ((link / wire_size) * info->tx_rate) / 100;
	uint64_t cpp = (pps > 0) ? (pktgen.hz / pps) : (pktgen.hz / 4);

	info->tx_pps        = pps;
	info->tx_cycles     = ((cpp * info->tx_burst) /
	                       wr_get_port_txcnt(pktgen.l2p, info->pid));
	info->tx_cycles     -= ff[info->tx_rate / 10];
}