From 49a17dca1ee9cf7c0fd02b6baf83814a68c4e5e8 Mon Sep 17 00:00:00 2001 From: Eric Blossom Date: Fri, 4 Sep 2009 15:35:01 -0700 Subject: [PATCH] Firmware now inserts mac source address value in each frame. The old mac used to do this automatically. --- usrp2/firmware/apps/app_common_v2.c | 1 + usrp2/firmware/apps/app_passthru_v2.c | 1 + usrp2/firmware/apps/factory_test.c | 1 + usrp2/firmware/apps/gen_eth_packets.c | 3 +-- usrp2/firmware/apps/gen_pause_frames.c | 4 ++-- usrp2/firmware/apps/mimo_app_common_v2.c | 1 + usrp2/firmware/apps/mimo_tx.c | 1 + usrp2/firmware/apps/mimo_tx_slave.c | 1 + usrp2/firmware/apps/rcv_eth_packets.c | 2 +- usrp2/firmware/apps/serdes_txrx.c | 1 + usrp2/firmware/apps/tx_standalone.c | 1 + usrp2/firmware/apps/txrx.c | 1 + 12 files changed, 13 insertions(+), 5 deletions(-) diff --git a/usrp2/firmware/apps/app_common_v2.c b/usrp2/firmware/apps/app_common_v2.c index 6d9606d4..1568ca70 100644 --- a/usrp2/firmware/apps/app_common_v2.c +++ b/usrp2/firmware/apps/app_common_v2.c @@ -70,6 +70,7 @@ void set_reply_hdr(u2_eth_packet_t *reply_pkt, u2_eth_packet_t const *cmd_pkt) { reply_pkt->ehdr.dst = cmd_pkt->ehdr.src; + reply_pkt->ehdr.src = *ethernet_mac_addr(); reply_pkt->ehdr.ethertype = U2_ETHERTYPE; reply_pkt->thdr.flags = 0; reply_pkt->thdr.fifo_status = 0; // written by protocol engine diff --git a/usrp2/firmware/apps/app_passthru_v2.c b/usrp2/firmware/apps/app_passthru_v2.c index 660bcd77..406c56b3 100644 --- a/usrp2/firmware/apps/app_passthru_v2.c +++ b/usrp2/firmware/apps/app_passthru_v2.c @@ -42,6 +42,7 @@ void set_reply_hdr(u2_eth_packet_t *reply_pkt, u2_eth_packet_t const *cmd_pkt) { reply_pkt->ehdr.dst = cmd_pkt->ehdr.src; + reply_pkt->ehdr.src = *ethernet_mac_addr(); reply_pkt->ehdr.ethertype = U2_ETHERTYPE; reply_pkt->thdr.flags = 0; reply_pkt->thdr.fifo_status = 0; // written by protocol engine diff --git a/usrp2/firmware/apps/factory_test.c b/usrp2/firmware/apps/factory_test.c index b4b44dbd..a4bc06d5 100644 --- a/usrp2/firmware/apps/factory_test.c +++ b/usrp2/firmware/apps/factory_test.c @@ -170,6 +170,7 @@ start_rx_streaming_cmd(const u2_mac_addr_t *host, op_start_rx_streaming_t *p) u2_eth_packet_t pkt; memset(&pkt, 0, sizeof(pkt)); pkt.ehdr.dst = *host; + pkt.ehdr.src = *ethernet_mac_addr(); pkt.ehdr.ethertype = U2_ETHERTYPE; u2p_set_word0(&pkt.fixed, 0, 0); // DSP RX will fill in timestamp diff --git a/usrp2/firmware/apps/gen_eth_packets.c b/usrp2/firmware/apps/gen_eth_packets.c index 530f448e..5cda5bb8 100644 --- a/usrp2/firmware/apps/gen_eth_packets.c +++ b/usrp2/firmware/apps/gen_eth_packets.c @@ -104,8 +104,7 @@ init_packets(void) memset(&pkt, 0, sizeof(pkt)); pkt.ehdr.dst = dst_mac_addr; - // src address filled in by mac - + pkt.ehdr.src = *ethernet_mac_addr(); pkt.ehdr.ethertype = U2_ETHERTYPE; pkt.fixed.word0 = 0x01234567; pkt.fixed.timestamp = 0xffffffff; diff --git a/usrp2/firmware/apps/gen_pause_frames.c b/usrp2/firmware/apps/gen_pause_frames.c index 4eaebcc4..8f2b2df0 100644 --- a/usrp2/firmware/apps/gen_pause_frames.c +++ b/usrp2/firmware/apps/gen_pause_frames.c @@ -132,9 +132,9 @@ init_packets(void) u2_eth_packet_t pkt __attribute__((aligned (4))); for (i = 0; i < 6; i++){ - pkt.ehdr.dst_addr[i] = dst_mac_addr[i]; - pkt.ehdr.src_addr[i] = 0; // filled in by mac + pkt.ehdr.dst.addr[i] = dst_mac_addr[i]; } + pkt.ehdr.src = *ethernet_mac_addr(); pkt.ehdr.ethertype = U2_ETHERTYPE; // fill ALL buffers for debugging diff --git a/usrp2/firmware/apps/mimo_app_common_v2.c b/usrp2/firmware/apps/mimo_app_common_v2.c index e5ab55fa..5dbecb0d 100644 --- a/usrp2/firmware/apps/mimo_app_common_v2.c +++ b/usrp2/firmware/apps/mimo_app_common_v2.c @@ -67,6 +67,7 @@ void set_reply_hdr(u2_eth_packet_t *reply_pkt, u2_eth_packet_t const *cmd_pkt) { reply_pkt->ehdr.dst = cmd_pkt->ehdr.src; + reply_pkt->ehdr.src = *ethernet_mac_addr(); reply_pkt->ehdr.ethertype = U2_ETHERTYPE; reply_pkt->thdr.flags = 0; reply_pkt->thdr.fifo_status = 0; // written by protocol engine diff --git a/usrp2/firmware/apps/mimo_tx.c b/usrp2/firmware/apps/mimo_tx.c index 730433bf..7fc7b486 100644 --- a/usrp2/firmware/apps/mimo_tx.c +++ b/usrp2/firmware/apps/mimo_tx.c @@ -179,6 +179,7 @@ start_rx_streaming_cmd(const u2_mac_addr_t *host, op_start_rx_streaming_t *p) u2_eth_packet_t pkt; memset(&pkt, 0, sizeof(pkt)); pkt.ehdr.dst = *host; + pkt.ehdr.src = *ethernet_mac_addr(); pkt.ehdr.ethertype = U2_ETHERTYPE; u2p_set_word0(&pkt.fixed, 0, 0); // DSP RX will fill in timestamp diff --git a/usrp2/firmware/apps/mimo_tx_slave.c b/usrp2/firmware/apps/mimo_tx_slave.c index df7ddf9c..e7da984c 100644 --- a/usrp2/firmware/apps/mimo_tx_slave.c +++ b/usrp2/firmware/apps/mimo_tx_slave.c @@ -176,6 +176,7 @@ start_rx_streaming_cmd(const u2_mac_addr_t *host, op_start_rx_streaming_t *p) u2_eth_packet_t pkt; memset(&pkt, 0, sizeof(pkt)); pkt.ehdr.dst = *host; + pkt.ehdr.src = *ethernet_mac_addr(); pkt.ehdr.ethertype = U2_ETHERTYPE; u2p_set_word0(&pkt.fixed, 0, 0); // DSP RX will fill in timestamp diff --git a/usrp2/firmware/apps/rcv_eth_packets.c b/usrp2/firmware/apps/rcv_eth_packets.c index 92e41d92..ec772ca7 100644 --- a/usrp2/firmware/apps/rcv_eth_packets.c +++ b/usrp2/firmware/apps/rcv_eth_packets.c @@ -135,7 +135,7 @@ init_packets(void) u2_eth_packet_t pkt __attribute__((aligned (4))); pkt.ehdr.dst = dst_mac_addr; - // src filled in by mac + pkt.ehdr.src = *ethernet_mac_addr(); pkt.ehdr.ethertype = U2_ETHERTYPE; // fill ALL buffers for debugging diff --git a/usrp2/firmware/apps/serdes_txrx.c b/usrp2/firmware/apps/serdes_txrx.c index 1becc205..7816f7a6 100644 --- a/usrp2/firmware/apps/serdes_txrx.c +++ b/usrp2/firmware/apps/serdes_txrx.c @@ -168,6 +168,7 @@ start_rx_streaming_cmd(const u2_mac_addr_t *host, op_start_rx_streaming_t *p) u2_eth_packet_t pkt; memset(&pkt, 0, sizeof(pkt)); pkt.ehdr.dst = *host; + pkt.ehdr.src = *ethernet_mac_addr(); pkt.ehdr.ethertype = U2_ETHERTYPE; u2p_set_word0(&pkt.fixed, 0, 0); // DSP RX will fill in timestamp diff --git a/usrp2/firmware/apps/tx_standalone.c b/usrp2/firmware/apps/tx_standalone.c index 25ba8fd4..6350a695 100644 --- a/usrp2/firmware/apps/tx_standalone.c +++ b/usrp2/firmware/apps/tx_standalone.c @@ -195,6 +195,7 @@ start_tx_transfers(void) u2_eth_packet_t pkt; memset(&pkt, 0, sizeof(pkt)); //pkt.ehdr.dst = *host; + pkt.ehdr.src = *ethernet_mac_addr(); pkt.ehdr.ethertype = U2_ETHERTYPE; u2p_set_word0(&pkt.fixed, U2P_TX_IMMEDIATE | U2P_TX_START_OF_BURST, 0); diff --git a/usrp2/firmware/apps/txrx.c b/usrp2/firmware/apps/txrx.c index 935e62a7..fc2f8a49 100644 --- a/usrp2/firmware/apps/txrx.c +++ b/usrp2/firmware/apps/txrx.c @@ -168,6 +168,7 @@ start_rx_streaming_cmd(const u2_mac_addr_t *host, op_start_rx_streaming_t *p) u2_eth_packet_t pkt; memset(&pkt, 0, sizeof(pkt)); pkt.ehdr.dst = *host; + pkt.ehdr.src = *ethernet_mac_addr(); pkt.ehdr.ethertype = U2_ETHERTYPE; u2p_set_word0(&pkt.fixed, 0, 0); // DSP RX will fill in timestamp -- 2.30.2