diff options
author | Srinath Arunachalam <Srinath.Arunachalam@harman.com> | 2015-07-15 10:45:18 -0600 |
---|---|---|
committer | Srinath Arunachalam <Srinath.Arunachalam@harman.com> | 2015-08-19 15:59:37 -0600 |
commit | a9c939cf9f8af40492ae1f1d1ddca86ab6ff3c80 (patch) | |
tree | 16ccdcdf55eca0a476202024fb429be7e53b183c /examples/simple_talker | |
parent | f69a944bef747543e9f360876e5d416179f7f4fc (diff) | |
download | Open-AVB-a9c939cf9f8af40492ae1f1d1ddca86ab6ff3c80.tar.gz |
Simple listener now initializes pcap mac address filter by getting the destination mac address from mrp packet instead of hardcoding it
Diffstat (limited to 'examples/simple_talker')
-rw-r--r-- | examples/simple_talker/simple_talker.c | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/examples/simple_talker/simple_talker.c b/examples/simple_talker/simple_talker.c index 509d2206..2973b108 100644 --- a/examples/simple_talker/simple_talker.c +++ b/examples/simple_talker/simple_talker.c @@ -350,7 +350,7 @@ int get_samples(unsigned count, int32_t * buffer) void sigint_handler(int signum) { printf("got SIGINT\n"); - halt_tx = signum; + global_struct_talker.halt_tx = signum; } int pci_connect(device_t *igb_dev) @@ -510,6 +510,9 @@ int main(int argc, char *argv[]) fprintf( stderr, "Must specify valid transport\n" ); usage(); } + + mrp_talker_client_init(); + rc = mrp_connect(); if (rc) { printf("socket creation failed\n"); @@ -647,9 +650,9 @@ int main(int argc, char *argv[]) ((char *)tmp_packet->vaddr)[12] = 0x81; ((char *)tmp_packet->vaddr)[13] = 0x00; ((char *)tmp_packet->vaddr)[14] = - ((domain_class_a_priority << 13 | domain_class_a_vid)) >> 8; + ((global_struct_talker.domain_class_a_priority << 13 | global_struct_talker.domain_class_a_vid)) >> 8; ((char *)tmp_packet->vaddr)[15] = - ((domain_class_a_priority << 13 | domain_class_a_vid)) & 0xFF; + ((global_struct_talker. domain_class_a_priority << 13 | global_struct_talker.domain_class_a_vid)) & 0xFF; if( transport == 2 ) { ((char *)tmp_packet->vaddr)[16] = 0x22; /* 1722 eth type */ ((char *)tmp_packet->vaddr)[17] = 0xF0; @@ -755,9 +758,9 @@ int main(int argc, char *argv[]) fprintf(stderr, "advertising stream ...\n"); if( transport == 2 ) { rc = mrp_advertise_stream(glob_stream_id, dest_addr, - domain_class_a_vid, PKT_SZ - 16, + global_struct_talker.domain_class_a_vid, PKT_SZ - 16, L2_PACKET_IPG / 125000, - domain_class_a_priority, 3900); + global_struct_talker.domain_class_a_priority, 3900); } else { /* * 1 is the wrong number for frame rate, but fractional values @@ -765,10 +768,10 @@ int main(int argc, char *argv[]) * using it consistently */ rc = mrp_advertise_stream(glob_stream_id, dest_addr, - domain_class_a_vid, + global_struct_talker.domain_class_a_vid, sizeof(*l4_headers) + L4_SAMPLES_PER_FRAME * CHANNELS * 2 + 6, 1, - domain_class_a_priority, 3900); + global_struct_talker.domain_class_a_priority, 3900); } if (rc) { printf("mrp_advertise_stream failed\n"); @@ -781,9 +784,9 @@ int main(int argc, char *argv[]) printf("mrp_await_listener failed\n"); return EXIT_FAILURE; } - listeners = 1; + global_struct_talker.listeners = 1; printf("got a listener ...\n"); - halt_tx = 0; + global_struct_talker.halt_tx = 0; if(-1 == gptpinit(&igb_shm_fd, &igb_mmap)) { fprintf(stderr, "GPTP init failed.\n"); @@ -809,7 +812,7 @@ int main(int argc, char *argv[]) rc = nice(-20); - while (listeners && !halt_tx) { + while (global_struct_talker.listeners && !global_struct_talker.halt_tx) { tmp_packet = free_packets; if (NULL == tmp_packet) goto cleanup; @@ -927,18 +930,18 @@ int main(int argc, char *argv[]) } } rc = nice(0); - if (halt_tx == 0) + if (global_struct_talker.halt_tx == 0) printf("listener left ...\n"); - halt_tx = 1; + global_struct_talker.halt_tx = 1; if( transport == 2 ) { rc = mrp_unadvertise_stream - (glob_stream_id, dest_addr, domain_class_a_vid, PKT_SZ - 16, L2_PACKET_IPG / 125000, - domain_class_a_priority, 3900); + (glob_stream_id, dest_addr, global_struct_talker.domain_class_a_vid, PKT_SZ - 16, L2_PACKET_IPG / 125000, + global_struct_talker.domain_class_a_priority, 3900); } else { rc = mrp_unadvertise_stream - (glob_stream_id, dest_addr, domain_class_a_vid, + (glob_stream_id, dest_addr, global_struct_talker.domain_class_a_vid, sizeof(*l4_headers)+L4_SAMPLES_PER_FRAME*CHANNELS*2 + 6, 1, - domain_class_a_priority, 3900); + global_struct_talker.domain_class_a_priority, 3900); } if (rc) printf("mrp_unadvertise_stream failed\n"); |