diff --git a/targets/ARCH/COMMON/common_lib.h b/targets/ARCH/COMMON/common_lib.h
index 3a1a15617b9d96fd8e08d7ec8dce9d1fdcfee453..652cf1307e3bedfb59dfd730b7b79104704693a9 100644
--- a/targets/ARCH/COMMON/common_lib.h
+++ b/targets/ARCH/COMMON/common_lib.h
@@ -116,10 +116,12 @@ extern "C"
 /* return 0 if OK, < 0 if error */
 int openair0_device_init(openair0_device* device, openair0_config_t *openair0_cfg);
 openair0_timestamp get_usrp_time(openair0_device *device);
+  int openair0_set_frequencies(openair0_device* device, openair0_config_t *openair0_cfg);
 }
 #else
 int openair0_device_init(openair0_device* device, openair0_config_t *openair0_cfg);
 openair0_timestamp get_usrp_time(openair0_device *device);
+int openair0_set_frequencies(openair0_device* device, openair0_config_t *openair0_cfg);
 #endif
 
 #endif // COMMON_LIB_H
diff --git a/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp b/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
index 2af10bee754275e81c47bced50d104136a5c5b8c..6c787cab8193f9ee698a058d3dfd2a659a1ceac0 100644
--- a/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
+++ b/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
@@ -174,6 +174,18 @@ static bool is_equal(double a, double b)
 {
   return std::fabs(a-b) < std::numeric_limits<double>::epsilon();
 }
+
+int openair0_set_frequencies(openair0_device* device, openair0_config_t *openair0_cfg) {
+
+  usrp_state_t *s = (usrp_state_t*)device->priv;
+
+  s->usrp->set_tx_freq(openair0_cfg[0].tx_freq[0]);
+  s->usrp->set_rx_freq(openair0_cfg[0].rx_freq[0]);
+
+  return(0);
+  
+}
+
  
 int openair0_device_init(openair0_device* device, openair0_config_t *openair0_cfg)
 {