diff --git a/sys/include/tsrb.h b/sys/include/tsrb.h
index f0d7f698aa64b6331f42e62986c7d751845668a6..0dcc04730f0a4aa5aed8ee5544384f3b4b1508bd 100644
--- a/sys/include/tsrb.h
+++ b/sys/include/tsrb.h
@@ -127,6 +127,14 @@ int tsrb_get_one(tsrb_t *rb);
  */
 int tsrb_get(tsrb_t *rb, char *dst, size_t n);
 
+/**
+ * @brief       Drop bytes from ringbuffer
+ * @param[in]   rb  Ringbuffer to operate on
+ * @param[in]   n   max number of bytes to drop
+ * @return      nr of bytes dropped
+ */
+int tsrb_drop(tsrb_t *rb, size_t n);
+
 /**
  * @brief       Add a byte to ringbuffer
  * @param[in]   rb  Ringbuffer to operate on
diff --git a/sys/tsrb/tsrb.c b/sys/tsrb/tsrb.c
index 334550fa4af682ab01c6aa95f1d69c3269204e24..e85ea52664d6c1a1a47480f2f3547e045895efe7 100644
--- a/sys/tsrb/tsrb.c
+++ b/sys/tsrb/tsrb.c
@@ -49,6 +49,16 @@ int tsrb_get(tsrb_t *rb, char *dst, size_t n)
     return (n - tmp);
 }
 
+int tsrb_drop(tsrb_t *rb, size_t n)
+{
+    size_t tmp = n;
+    while (tmp && !tsrb_empty(rb)) {
+        _pop(rb);
+        tmp--;
+    }
+    return (n - tmp);
+}
+
 int tsrb_add_one(tsrb_t *rb, char c)
 {
     if (!tsrb_full(rb)) {