commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] [gnuradio] 02/148: working a separate ctrl ethernet de


From: git
Subject: [Commit-gnuradio] [gnuradio] 02/148: working a separate ctrl ethernet device into the code
Date: Mon, 15 Aug 2016 00:47:19 +0000 (UTC)

This is an automated email from the git hooks/post-receive script.

nwest pushed a commit to annotated tag old_usrp_devel_udp
in repository gnuradio.

commit 418202768e471fae7d77a982fbadcd70831e3fa6
Author: Josh Blum <address@hidden>
Date:   Thu Oct 29 19:08:34 2009 -0700

    working a separate ctrl ethernet device into the code
---
 usrp2/firmware/apps/app_common_v2.c | 13 +++++++------
 usrp2/host/lib/usrp2_impl.cc        | 10 +++++-----
 usrp2/host/lib/usrp2_impl.h         |  2 +-
 3 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/usrp2/firmware/apps/app_common_v2.c 
b/usrp2/firmware/apps/app_common_v2.c
index 67cccd5..dbb391e 100644
--- a/usrp2/firmware/apps/app_common_v2.c
+++ b/usrp2/firmware/apps/app_common_v2.c
@@ -71,7 +71,7 @@ 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->ehdr.ethertype = U2_ETHERTYPE+1;
   reply_pkt->thdr.flags = 0;
   reply_pkt->thdr.fifo_status = 0;     // written by protocol engine
   reply_pkt->thdr.seqno = 0;           // written by protocol engine
@@ -600,7 +600,7 @@ bool
 eth_pkt_inspector(dbsm_t *sm, int bufno)
 {
   u2_eth_packet_t *pkt = (u2_eth_packet_t *) buffer_ram(bufno);
-  size_t byte_len = (buffer_pool_status->last_line[bufno] - 1) * 4;
+  size_t byte_len = (buffer_pool_status->last_line[bufno] - 3) * 4;
 
   //static size_t last_len = 0;
 
@@ -608,16 +608,17 @@ eth_pkt_inspector(dbsm_t *sm, int bufno)
 
   // inspect rcvd frame and figure out what do do.
 
+  if (pkt->ehdr.ethertype == U2_ETHERTYPE+1){
+    handle_control_chan_frame(pkt, byte_len);
+    return true;
+  }
+
   if (pkt->ehdr.ethertype != U2_ETHERTYPE)
     return true;       // ignore, probably bogus PAUSE frame from MAC
 
   int chan = u2p_chan(&pkt->fixed);
 
   switch (chan){
-  case CONTROL_CHAN:
-    handle_control_chan_frame(pkt, byte_len);
-    return true;       // we handled the packet
-    break;
 
   case 0:
   default:
diff --git a/usrp2/host/lib/usrp2_impl.cc b/usrp2/host/lib/usrp2_impl.cc
index e2988e0..3c199fd 100644
--- a/usrp2/host/lib/usrp2_impl.cc
+++ b/usrp2/host/lib/usrp2_impl.cc
@@ -154,7 +154,7 @@ namespace usrp2 {
     if (!d_eth_data->open(ifc, htons(U2_ETHERTYPE)))
       throw std::runtime_error("Unable to open/register USRP2 data protocol");
     if (!d_eth_ctrl->open(ifc, htons(U2_ETHERTYPE+1)))
-      throw std::runtime_error("Unable to open/register USRP2 data protocol");
+      throw std::runtime_error("Unable to open/register USRP2 control 
protocol");
 
     d_addr = p->addr;
 
@@ -274,9 +274,9 @@ namespace usrp2 {
   }
   
   void
-  usrp2::impl::init_et_hdrs(u2_eth_packet_t *p, const std::string &dst)
+  usrp2::impl::init_et_hdrs(u2_eth_packet_t *p, const std::string &dst, 
unsigned short ethertype)
   {
-    p->ehdr.ethertype = htons(U2_ETHERTYPE);
+    p->ehdr.ethertype = htons(ethertype);
     parse_mac_addr(dst, &p->ehdr.dst); 
     memcpy(&p->ehdr.src, d_eth_data->mac(), 6);
     p->thdr.flags = 0; // FIXME transport header values?
@@ -288,7 +288,7 @@ namespace usrp2 {
   usrp2::impl::init_etf_hdrs(u2_eth_packet_t *p, const std::string &dst,
                             int word0_flags, int chan, uint32_t timestamp)
   {
-    init_et_hdrs(p, dst);
+    init_et_hdrs(p, dst, (chan == CONTROL_CHAN) ? U2_ETHERTYPE+1 : 
U2_ETHERTYPE);
     u2p_set_word0(&p->fixed, word0_flags, chan);
     u2p_set_timestamp(&p->fixed, timestamp);
     
@@ -337,7 +337,7 @@ namespace usrp2 {
       len = sizeof(tmp);
     }
 
-    return d_eth_data->tx_frame(cmd, len) == eth_buffer::EB_OK;
+    return d_eth_ctrl->write_packet(cmd, len) >= 0;
   }
 
   bool
diff --git a/usrp2/host/lib/usrp2_impl.h b/usrp2/host/lib/usrp2_impl.h
index 16cc685..040e17e 100644
--- a/usrp2/host/lib/usrp2_impl.h
+++ b/usrp2/host/lib/usrp2_impl.h
@@ -105,7 +105,7 @@ namespace usrp2 {
     }
     
     static bool parse_mac_addr(const std::string &s, u2_mac_addr_t *p);
-    void init_et_hdrs(u2_eth_packet_t *p, const std::string &dst);
+    void init_et_hdrs(u2_eth_packet_t *p, const std::string &dst, unsigned 
short ethertype);
     void init_etf_hdrs(u2_eth_packet_t *p, const std::string &dst,
                       int word0_flags, int chan, uint32_t timestamp);
     void stop_bg();



reply via email to

[Prev in Thread] Current Thread [Next in Thread]