#include <fcntl.h>
#include <unistd.h>
#include <sys/mman.h>
#include "args.h"
#include "init.h"
#include "main.h"
#include "../include/conf.h"
        },
        .txmode = {
        },
};
        .high_water = 80 * 510 / 100,
        .low_water  = 60 * 510 / 100,
        .pause_time = 1337,
        .send_xon   = 0,
};
void configure_eth_port(uint16_t port_id)
{
    int ret;
    uint16_t nb_rxd = RX_DESC_PER_QUEUE;
    uint16_t nb_txd = TX_DESC_PER_QUEUE;
    if (ret < 0)
        rte_exit(EXIT_FAILURE, 
"Cannot configure port %u (error %d)\n",
                 (unsigned int) port_id, ret);
    if (ret < 0)
                "Cannot adjust number of descriptors for port %u (error %d)\n",
                (unsigned int) port_id, ret);
    
    rxq_conf = dev_info.default_rxconf;
            &rxq_conf,
            mbuf_pool);
    if (ret < 0)
                "Failed to setup RX queue on port %u (error %d)\n",
                (unsigned int) port_id, ret);
    
    txq_conf = dev_info.default_txconf;
            &txq_conf);
    if (ret < 0)
                "Failed to setup TX queue on port %u (error %d)\n",
                (unsigned int) port_id, ret);
    
    if (ret < 0)
                "Failed to setup hardware flow control on port %u (error %d)\n",
                (unsigned int) port_id, ret);
    
    if (ret < 0)
        rte_exit(EXIT_FAILURE, 
"Failed to start port %u (error %d)\n",
                 (unsigned int) port_id, ret);
    
}
void
init_dpdk(void)
{
        rte_exit(EXIT_FAILURE, 
"Not enough ethernet port available\n");
 }
void init_ring(int lcore_id, uint16_t port_id)
{
            "core%d_port%d", lcore_id, port_id);
    if (ring == NULL)
    *high_watermark = 80 * RING_SIZE / 100;
    rings[lcore_id][port_id] = ring;
}
void
pair_ports(void)
{
    uint16_t i, j;
    
    for (i = 0; i < RTE_MAX_ETHPORTS; i++)
        if (is_bit_set(i, portmask))
            for (j = i + 1; j < RTE_MAX_ETHPORTS; j++)
                if (is_bit_set(j, portmask)) {
                    port_pairs[i] = j;
                    port_pairs[j] = i;
                    i = j;
                    break;
                }
}
void
setup_shared_variables(void)
{
    if (qw_memzone == NULL)
    quota = qw_memzone->
addr;
    low_watermark = (
unsigned int *) qw_memzone->
addr + 1;
    high_watermark = (
unsigned int *) qw_memzone->
addr + 2;
}