diff --git a/targets/ARCH/COMMON/common_lib.h b/targets/ARCH/COMMON/common_lib.h
index 652cf1307e3bedfb59dfd730b7b79104704693a9..25e541ebf54f92ddfab9ee62fc7952730999bc98 100644
--- a/targets/ARCH/COMMON/common_lib.h
+++ b/targets/ARCH/COMMON/common_lib.h
@@ -117,11 +117,15 @@ extern "C"
 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);
+
+int openair0_set_gains(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);
+int openair0_set_gains(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 6c787cab8193f9ee698a058d3dfd2a659a1ceac0..8fe3683f130273421b547dbbbffcd7536a482a04 100644
--- a/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
+++ b/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
@@ -186,6 +186,14 @@ int openair0_set_frequencies(openair0_device* device, openair0_config_t *openair
   
 }
 
+int openair0_set_gains(openair0_device* device, openair0_config_t *openair0_cfg) {
+
+  usrp_state_t *s = (usrp_state_t*)device->priv;
+
+  s->usrp->set_tx_gain(openair0_cfg[0].tx_gain[0]);
+  s->usrp->set_rx_gain(openair0_cfg[0].rx_gain[0]);
+  return(0);
+}
  
 int openair0_device_init(openair0_device* device, openair0_config_t *openair0_cfg)
 {