From bd24127bce96ee44f72f8c1ac6f45ba551cd0053 Mon Sep 17 00:00:00 2001 From: Frederic-Philippe Metz Date: Sun, 15 Mar 2015 13:31:43 +0100 Subject: [PATCH] Revert "First try of implementation of measureing delay." This reverts commit 6bc7a77e9bd386bf1564e87561e1956011e6cfad. --- daemon/Makefile | 2 +- daemon/call.c | 16 ---------------- daemon/call.h | 2 -- daemon/cli.c | 11 +++-------- daemon/graphite.c | 1 - daemon/kernel.c | 15 --------------- daemon/main.c | 9 --------- daemon/measuredelay.c | 33 -------------------------------- daemon/measuredelay.h | 14 -------------- kernel-module/xt_RTPENGINE.c | 37 +++++------------------------------- kernel-module/xt_RTPENGINE.h | 4 ---- 11 files changed, 9 insertions(+), 135 deletions(-) delete mode 100644 daemon/measuredelay.c delete mode 100644 daemon/measuredelay.h diff --git a/daemon/Makefile b/daemon/Makefile index b1c762f73..24d0637b6 100644 --- a/daemon/Makefile +++ b/daemon/Makefile @@ -63,7 +63,7 @@ endif SRCS= main.c kernel.c poller.c aux.c control_tcp.c streambuf.c call.c control_udp.c redis.c \ bencode.c cookie_cache.c udp_listener.c control_ng.c sdp.c str.c stun.c rtcp.c \ - crypto.c rtp.c call_interfaces.c dtls.c log.c cli.c graphite.c measuredelay.c + crypto.c rtp.c call_interfaces.c dtls.c log.c cli.c graphite.c OBJS= $(SRCS:.c=.o) diff --git a/daemon/call.c b/daemon/call.c index ec4142bd4..6492a0abb 100644 --- a/daemon/call.c +++ b/daemon/call.c @@ -1344,12 +1344,6 @@ static void callmaster_timer(void *ptr) { DS(bytes); DS(errors); - mutex_lock(&m->statspslock); - ilog(LOG_INFO, "Start time:%llu\n", ke->stats.start.tv_nsec); - m->statsps.start = ke->stats.start; - m->statsps.end = ke->stats.end; - mutex_unlock(&m->statspslock); - mutex_lock(&ps->in_lock); if (ke->stats.packets != ps->kernel_stats.packets) @@ -1359,9 +1353,6 @@ static void callmaster_timer(void *ptr) { ps->kernel_stats.bytes = ke->stats.bytes; ps->kernel_stats.errors = ke->stats.errors; - ps->kernel_stats.start = ke->stats.start; - ps->kernel_stats.end = ke->stats.end; - update = 0; sink = packet_stream_sink(ps); @@ -2384,13 +2375,6 @@ static void unkernelize(struct packet_stream *p) { PS_CLEAR(p, KERNELIZED); } -void timespec_subtract (struct timespec *result, const struct timespec *a, const struct timespec *b) { - long long nanoseconds=0; - nanoseconds = ((long)a->tv_sec - (long long)b->tv_sec) * 1000000000 + ((long long)a->tv_nsec - (long long)b->tv_nsec); - result->tv_sec = nanoseconds/(long long)1000000000; - result->tv_nsec = nanoseconds%(long long)1000000000; -} - void timeval_subtract (struct timeval *result, const struct timeval *a, const struct timeval *b) { long microseconds=0; microseconds = ((long)a->tv_sec - (long)b->tv_sec) * 1000000 + ((long)a->tv_usec - (long)b->tv_usec); diff --git a/daemon/call.h b/daemon/call.h index 1c43d86b7..8be512487 100644 --- a/daemon/call.h +++ b/daemon/call.h @@ -190,8 +190,6 @@ struct stats { u_int64_t packets; u_int64_t bytes; u_int64_t errors; - struct timespec start; - struct timespec end; }; struct totalstats { diff --git a/daemon/cli.c b/daemon/cli.c index 0591ec581..e6e4300ab 100644 --- a/daemon/cli.c +++ b/daemon/cli.c @@ -7,8 +7,6 @@ #include #include #include -#include -#include #include "poller.h" #include "aux.h" @@ -148,10 +146,9 @@ static void cli_incoming_list_callid(char* buffer, int len, struct callmaster* m if (PS_ISSET(ps, FALLBACK_RTCP)) continue; - struct timespec result; - timespec_subtract(&result,&(ps->stats.end),&(ps->stats.start)); + printlen = snprintf(replybuffer,(outbufend-replybuffer), "------ Media #%u, port %5u <> %15s:%-5hu%s, " - "%llu p, %llu b, %llu e, %llu last_packet, %llu.%9llu delay\n", + "%llu p, %llu b, %llu e, %llu last_packet\n", md->index, (unsigned int) (ps->sfd ? ps->sfd->fd.localport : 0), smart_ntop_p_buf(&ps->endpoint.ip46), ps->endpoint.port, @@ -159,9 +156,7 @@ static void cli_incoming_list_callid(char* buffer, int len, struct callmaster* m (unsigned long long) ps->stats.packets, (unsigned long long) ps->stats.bytes, (unsigned long long) ps->stats.errors, - (unsigned long long) ps->last_packet, - (unsigned long long) result.tv_sec, - (unsigned long long) result.tv_nsec); + (unsigned long long) ps->last_packet); ADJUSTLEN(printlen,outbufend,replybuffer); } } diff --git a/daemon/graphite.c b/daemon/graphite.c index 55b32501d..f886584af 100644 --- a/daemon/graphite.c +++ b/daemon/graphite.c @@ -144,4 +144,3 @@ void graphite_loop_run(struct callmaster* callmaster, int seconds) { sleep: usleep(100000); } - diff --git a/daemon/kernel.c b/daemon/kernel.c index 552522c12..670f5496e 100644 --- a/daemon/kernel.c +++ b/daemon/kernel.c @@ -102,20 +102,6 @@ int kernel_del_stream(int fd, u_int16_t p) { return -1; } -int kernel_measure_delay(int fd) { - struct rtpengine_message msg; - int ret; - - ZERO(msg); - msg.cmd = MMG_MEASUREDELAY; - - ret = write(fd, &msg, sizeof(msg)); - if (ret > 0) - return 0; - - ilog(LOG_ERROR, "Failed to delete relay stream from kernel: %s", strerror(errno)); - return -1; -} GList *kernel_list(unsigned int id) { char str[64]; @@ -133,7 +119,6 @@ GList *kernel_list(unsigned int id) { for (;;) { buf = g_slice_alloc(sizeof(*buf)); ret = read(fd, buf, sizeof(*buf)); - if (ret != sizeof(*buf)) break; li = g_list_prepend(li, buf); diff --git a/daemon/main.c b/daemon/main.c index 333a71d46..50da00044 100644 --- a/daemon/main.c +++ b/daemon/main.c @@ -27,7 +27,6 @@ #include "call_interfaces.h" #include "cli.h" #include "graphite.h" -#include "measuredelay.h" @@ -630,13 +629,6 @@ static void timer_loop(void *d) { poller_timers_wait_run(p, 100); } -static void measuredelay_loop(void *d) { - struct callmaster *cm = d; - - while (!global_shutdown) - measuredelay_loop_run(cm,1); // time in seconds -} - static void graphite_loop(void *d) { struct callmaster *cm = d; @@ -670,7 +662,6 @@ int main(int argc, char **argv) { thread_create_detach(sighandler, NULL); thread_create_detach(timer_loop, ctx.p); - thread_create_detach(measuredelay_loop, ctx.m); if (graphite_ip) thread_create_detach(graphite_loop, ctx.m); diff --git a/daemon/measuredelay.c b/daemon/measuredelay.c deleted file mode 100644 index 846d51817..000000000 --- a/daemon/measuredelay.c +++ /dev/null @@ -1,33 +0,0 @@ -/* - * meauredelay.c - * - * Created on: Feb 13, 2015 - * Author: fmetz - */ - -#include "log.h" -#include "call.h" -#include "measuredelay.h" -#include "kernel.h" - -static struct callmaster* cm=0; -static time_t g_now, next_run; - -void measuredelay_loop_run(struct callmaster* callmaster, int seconds) { - - int rc=0; - - g_now = time(NULL); - if (g_now < next_run) - goto sleep; - - next_run = g_now + seconds; - - if (!cm) - cm = callmaster; - - kernel_measure_delay(cm->conf.kernelfd); - -sleep: - usleep(100000); -} diff --git a/daemon/measuredelay.h b/daemon/measuredelay.h deleted file mode 100644 index 96f5d7798..000000000 --- a/daemon/measuredelay.h +++ /dev/null @@ -1,14 +0,0 @@ -/* - * measuredelay.h - * - * Created on: Feb 13, 2015 - * Author: fmetz - */ - -#ifndef MEASUREDELAY_H_ -#define MEASUREDELAY_H_ - -void measuredelay_loop_run(struct callmaster* callmaster, int seconds); - - -#endif /* MEASUREDELAY_H_ */ diff --git a/kernel-module/xt_RTPENGINE.c b/kernel-module/xt_RTPENGINE.c index 7a134f05e..8589a02ca 100644 --- a/kernel-module/xt_RTPENGINE.c +++ b/kernel-module/xt_RTPENGINE.c @@ -1624,9 +1624,6 @@ static ssize_t proc_control_write(struct file *file, const char __user *buf, siz struct rtpengine_table *t; struct rtpengine_message msg; int err; - int port; - struct rtpengine_target *g; - unsigned long flags; if (buflen != sizeof(msg)) return -EIO; @@ -1664,19 +1661,6 @@ static ssize_t proc_control_write(struct file *file, const char __user *buf, siz goto err; break; - case MMG_MEASUREDELAY: - port=0; - if (t==NULL) - break; - g = find_next_target(t, &port); - while (g != NULL) { - spin_lock_irqsave(&g->stats_lock, flags); - g->stats.measureactive=1; - spin_unlock_irqrestore(&g->stats_lock, flags); - g = find_next_target(t, &port); - } - break; - default: printk(KERN_WARNING "xt_RTPENGINE unimplemented op %u\n", msg.cmd); err = -EINVAL; @@ -1808,8 +1792,6 @@ drop: static int send_proxy_packet(struct sk_buff *skb, struct re_address *src, struct re_address *dst, unsigned char tos) { - printk(KERN_WARNING "xt_RTPENGINE send_proxy_packet\n"); - if (src->family != dst->family) goto drop; @@ -2123,7 +2105,7 @@ static inline int is_dtls(struct sk_buff *skb) { return 1; } -static unsigned int rtpengine46(struct sk_buff *skb, struct rtpengine_table *t, struct re_address *src, struct timespec *starttime) { +static unsigned int rtpengine46(struct sk_buff *skb, struct rtpengine_table *t, struct re_address *src) { struct udphdr *uh; struct rtpengine_target *g; struct sk_buff *skb2; @@ -2230,15 +2212,8 @@ not_rtp: err = send_proxy_packet(skb, &g->target.src_addr, &g->target.dst_addr, g->target.tos); - out: spin_lock_irqsave(&g->stats_lock, flags); - if (g->stats.measureactive==1) { - g->stats.start = *starttime; - getnstimeofday(&g->stats.end); - g->stats.measureactive=0; - } - printk(KERN_WARNING "xt_RTPENGINE failed to create /proc entry for ID %llu\n", g->stats.start.tv_nsec); if (err) g->stats.errors++; else { @@ -2279,8 +2254,6 @@ static unsigned int rtpengine4(struct sk_buff *oskb, const struct xt_action_para struct iphdr *ih; struct rtpengine_table *t; struct re_address src; - struct timespec starttime; - getnstimeofday(&starttime); t = get_table(pinfo->id); if (!t) @@ -2299,7 +2272,8 @@ static unsigned int rtpengine4(struct sk_buff *oskb, const struct xt_action_para memset(&src, 0, sizeof(src)); src.family = AF_INET; src.u.ipv4 = ih->saddr; - return rtpengine46(skb, t, &src, &starttime); + + return rtpengine46(skb, t, &src); skip2: kfree_skb(skb); @@ -2322,8 +2296,6 @@ static unsigned int rtpengine6(struct sk_buff *oskb, const struct xt_action_para struct ipv6hdr *ih; struct rtpengine_table *t; struct re_address src; - struct timespec starttime; - getnstimeofday(&starttime); t = get_table(pinfo->id); if (!t) @@ -2342,7 +2314,8 @@ static unsigned int rtpengine6(struct sk_buff *oskb, const struct xt_action_para memset(&src, 0, sizeof(src)); src.family = AF_INET6; memcpy(&src.u.ipv6, &ih->saddr, sizeof(src.u.ipv6)); - return rtpengine46(skb, t, &src, &starttime); + + return rtpengine46(skb, t, &src); skip2: kfree_skb(skb); diff --git a/kernel-module/xt_RTPENGINE.h b/kernel-module/xt_RTPENGINE.h index cde73dff2..5f419a08c 100644 --- a/kernel-module/xt_RTPENGINE.h +++ b/kernel-module/xt_RTPENGINE.h @@ -9,9 +9,6 @@ struct rtpengine_stats { u_int64_t packets; u_int64_t bytes; u_int64_t errors; - struct timespec start; - struct timespec end; - u_int32_t measureactive; }; struct re_address { @@ -89,7 +86,6 @@ struct rtpengine_message { MMG_ADD, MMG_DEL, MMG_UPDATE, - MMG_MEASUREDELAY, } cmd; struct rtpengine_target_info target;