Revision c73165bb firmware/zpu/apps/txrx_uhd.c
| b/firmware/zpu/apps/txrx_uhd.c | ||
|---|---|---|
| 53 | 53 |
// the fast-path setup global variables |
| 54 | 54 |
// ---------------------------------------------------------------- |
| 55 | 55 |
static eth_mac_addr_t fp_mac_addr_src, fp_mac_addr_dst; |
| 56 |
extern struct socket_address fp_socket_src, fp_socket_dst; |
|
| 56 |
struct socket_address fp_socket_src, fp_socket_dst; |
|
| 57 |
extern uint16_t dsp0_dst_port, err0_dst_port, dsp1_dst_port; |
|
| 57 | 58 |
|
| 58 | 59 |
static void handle_udp_err0_packet( |
| 59 | 60 |
struct socket_address src, struct socket_address dst, |
| 60 | 61 |
unsigned char *payload, int payload_len |
| 61 | 62 |
){
|
| 62 | 63 |
sr_udp_sm->err0_port = (((uint32_t)dst.port) << 16) | src.port; |
| 64 |
err0_dst_port = src.port; |
|
| 63 | 65 |
printf("Storing for async error path:\n");
|
| 64 | 66 |
printf(" source udp port: %d\n", dst.port);
|
| 65 | 67 |
printf(" destination udp port: %d\n", src.port);
|
| 66 | 68 |
newline(); |
| 67 | 69 |
} |
| 68 | 70 |
|
| 69 |
static void handle_udp_data_packet( |
|
| 71 |
static void handle_udp_dsp1_packet( |
|
| 72 |
struct socket_address src, struct socket_address dst, |
|
| 73 |
unsigned char *payload, int payload_len |
|
| 74 |
){
|
|
| 75 |
sr_udp_sm->dsp1_port = (((uint32_t)dst.port) << 16) | src.port; |
|
| 76 |
dsp1_dst_port = src.port; |
|
| 77 |
printf("Storing for dsp1 path:\n");
|
|
| 78 |
printf(" source udp port: %d\n", dst.port);
|
|
| 79 |
printf(" destination udp port: %d\n", src.port);
|
|
| 80 |
newline(); |
|
| 81 |
} |
|
| 82 |
|
|
| 83 |
static void handle_udp_dsp0_packet( |
|
| 70 | 84 |
struct socket_address src, struct socket_address dst, |
| 71 | 85 |
unsigned char *payload, int payload_len |
| 72 | 86 |
){
|
| ... | ... | |
| 75 | 89 |
fp_socket_src = dst; |
| 76 | 90 |
fp_socket_dst = src; |
| 77 | 91 |
sr_udp_sm->dsp0_port = (((uint32_t)dst.port) << 16) | src.port; |
| 78 |
printf("Storing for fast path:\n");
|
|
| 92 |
dsp0_dst_port = src.port; |
|
| 93 |
printf("Storing for dsp0 path:\n");
|
|
| 79 | 94 |
printf(" source mac addr: ");
|
| 80 | 95 |
print_mac_addr(&fp_mac_addr_src); newline(); |
| 81 | 96 |
printf(" source ip addr: ");
|
| ... | ... | |
| 341 | 356 |
|
| 342 | 357 |
//1) register the addresses into the network stack |
| 343 | 358 |
register_addrs(ethernet_mac_addr(), get_ip_addr()); |
| 344 |
pkt_ctrl_program_inspector(get_ip_addr(), USRP2_UDP_DATA_PORT);
|
|
| 359 |
pkt_ctrl_program_inspector(get_ip_addr(), USRP2_UDP_DSP0_PORT);
|
|
| 345 | 360 |
|
| 346 | 361 |
//2) register callbacks for udp ports we service |
| 347 | 362 |
init_udp_listeners(); |
| 348 | 363 |
register_udp_listener(USRP2_UDP_CTRL_PORT, handle_udp_ctrl_packet); |
| 349 |
register_udp_listener(USRP2_UDP_DATA_PORT, handle_udp_data_packet);
|
|
| 364 |
register_udp_listener(USRP2_UDP_DSP0_PORT, handle_udp_dsp0_packet);
|
|
| 350 | 365 |
register_udp_listener(USRP2_UDP_ERR0_PORT, handle_udp_err0_packet); |
| 366 |
register_udp_listener(USRP2_UDP_DSP1_PORT, handle_udp_dsp1_packet); |
|
| 351 | 367 |
#ifdef USRP2P |
| 352 | 368 |
register_udp_listener(USRP2_UDP_UPDATE_PORT, handle_udp_fw_update_packet); |
| 353 | 369 |
#endif |
Also available in: Unified diff