BTW I am passing zc:eth1 as the device_name argument

From: [email protected]
To: [email protected]
Date: Fri, 16 Oct 2015 09:49:23 +0000
Subject: Re: [Ntop-misc] Failed to send packet total size greater than 64bytes 
using code from the zsend example




Thank you Alfredo

both print 0. How do I fix this? 

Bryan

From: [email protected]
Date: Fri, 16 Oct 2015 10:01:33 +0200
To: [email protected]
Subject: Re: [Ntop-misc] Failed to send packet total size greater than  64bytes 
using code from the zsend example

Please print:1. asio::pf_ring::max_packet_len(device_name.c_str())2. 
buffers[0]->len before pfring_zc_send_pkt()
Alfredo
On 16 Oct 2015, at 08:52, Bryan Fok <[email protected]> wrote:FYI non 
zero-copy does not have this limit

From: [email protected]
To: [email protected]
Date: Fri, 16 Oct 2015 06:50:32 +0000
Subject: [Ntop-misc] Failed to send packet total size greater than 64bytes 
using code from the zsend example

pfring_zc_send_pkt() always return -1 when the message size (include the header 
+ my application data) is greater than 64 bytes. Please help.


This is how I create the cluster

zc = pfring_zc_create_cluster(cluster_id, 
asio::pf_ring::max_packet_len(device_name.c_str()), 0, NBUFF, 
numa_node_of_cpu(bind_cpu), NULL /* auto hugetlb mountpoint */
        );

        if (zc == NULL)
        {
            fprintf(stderr, "pfring_zc_create_cluster error [%s] Please check 
your hugetlb configuration\n", strerror(errno));
            return -1;
        }

        zq = pfring_zc_open_device(zc, device_name.c_str(), tx_only, 0);

        if (zq == NULL)
        {
            fprintf(stderr, "pfring_zc_open_device error [%s] Please check that 
%s is up and not already used\n", strerror(errno),
                    device_name.c_str());
            return -1;
        }

        fprintf(stderr, "Sending packets to %s\n", device_name.c_str());

        for (int i = 0; i < NBUFF; i++)
        {
            buffers[i] = pfring_zc_get_packet_handle(zc);

            if (buffers[i] == NULL)
            {
                fprintf(stderr, "pfring_zc_get_packet_handle error\n");
                return -1;
            }
        }


This is how I send the packet

    char a[23] = {0}; //23 + 42 = 65 return -1 from the send function, 
resetting a to 22 it works
    int tot_msg_size = forge_udp_packet(pfring_zc_pkt_buff_data(buffers[0], 
zq), 1600, a, sizeof(a), parse_ip_v4_string(sender_ip.c_str()),
                    sender_port, parse_ip_v4_string(mcast_ip.c_str()), 
mcast_port);

    std::cout << "tot_msg_size:" << std::dec << tot_msg_size << std::endl;

    buffers[0]->len = tot_msg_size;
    std::cout << "buffers[0] : ";
    for (int i = 0; i < buffers[0]->len; ++i)
    {
          std::cout << std::hex << (int) pfring_zc_pkt_buff_data(buffers[0], 
zq)[i] << " ";
    }
    int rc = pfring_zc_send_pkt(zq, &buffers[0], 0);


B.R
Bryan

_______________________________________________ Ntop-misc mailing list 
[email protected] 
http://listgateway.unipi.it/mailman/listinfo/ntop-misc_______________________________________________Ntop-misc
 mailing 
[email protected]http://listgateway.unipi.it/mailman/listinfo/ntop-misc

_______________________________________________
Ntop-misc mailing list
[email protected]
http://listgateway.unipi.it/mailman/listinfo/ntop-misc                          
          

_______________________________________________
Ntop-misc mailing list
[email protected]
http://listgateway.unipi.it/mailman/listinfo/ntop-misc                          
          
_______________________________________________
Ntop-misc mailing list
[email protected]
http://listgateway.unipi.it/mailman/listinfo/ntop-misc

Reply via email to