Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package clknetsim for openSUSE:Factory checked in at 2024-12-10 23:49:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/clknetsim (Old) and /work/SRC/openSUSE:Factory/.clknetsim.new.29675 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "clknetsim" Tue Dec 10 23:49:37 2024 rev:6 rq:1229838 version:0+git.20241128 Changes: -------- --- /work/SRC/openSUSE:Factory/clknetsim/clknetsim.changes 2024-08-28 21:32:12.852567903 +0200 +++ /work/SRC/openSUSE:Factory/.clknetsim.new.29675/clknetsim.changes 2024-12-10 23:49:51.788378252 +0100 @@ -1,0 +2,11 @@ +Tue Dec 10 14:33:42 UTC 2024 - Martin Pluskal <mplus...@suse.com> + +- Update to version 0+git.20241128: + * bash: wait for client processes to exit + * close client socket on exit + * round nanoseconds in PTP_SYS_OFFSET* delay adjustments + * avoid timestamps from future in PTP_SYS_OFFSET_EXTENDED + * add options to cycle PHC jitter + * init symbols in fdopen() + +------------------------------------------------------------------- Old: ---- clknetsim-0+git.20240610.obscpio New: ---- clknetsim-0+git.20241128.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ clknetsim.spec ++++++ --- /var/tmp/diff_new_pack.lPv5pb/_old 2024-12-10 23:49:52.660414603 +0100 +++ /var/tmp/diff_new_pack.lPv5pb/_new 2024-12-10 23:49:52.664414769 +0100 @@ -17,7 +17,7 @@ Name: clknetsim -Version: 0+git.20240610 +Version: 0+git.20241128 Release: 0 Summary: Clock and Network Simulator License: GPL-2.0-only ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.lPv5pb/_old 2024-12-10 23:49:52.696416104 +0100 +++ /var/tmp/diff_new_pack.lPv5pb/_new 2024-12-10 23:49:52.700416271 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/mlichvar/clknetsim.git</param> - <param name="changesrevision">633a0be069bac00e5aa562c0e5e15a3bf30b6af2</param></service></servicedata> + <param name="changesrevision">64acc4fd0ee92c2bafd9d1cf8097eb3632da685b</param></service></servicedata> (No newline at EOF) ++++++ clknetsim-0+git.20240610.obscpio -> clknetsim-0+git.20241128.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clknetsim-0+git.20240610/client.c new/clknetsim-0+git.20241128/client.c --- old/clknetsim-0+git.20240610/client.c 2024-06-10 14:23:41.000000000 +0200 +++ new/clknetsim-0+git.20241128/client.c 2024-11-28 11:04:51.000000000 +0100 @@ -134,7 +134,7 @@ static int initializing = 0; static int initialized_symbols = 0; static int initialized = 0; -static int clknetsim_fd; +static int clknetsim_fd = -1; static int precision_hack = 1; static unsigned int random_seed = 0; static int recv_multiply = 1; @@ -143,6 +143,8 @@ static double phc_delay = 0.0; static double phc_jitter = 0.0; static double phc_jitter_asym = 0.0; +static int phc_jitter_off = 0; +static int phc_jitter_on = 1; static int phc_swap = 0; /* Ethernet speed in Mb/s */ @@ -331,6 +333,14 @@ if (env) phc_jitter_asym = atof(env); + env = getenv("CLKNETSIM_PHC_JITTER_OFF"); + if (env) + phc_jitter_off = atoi(env); + + env = getenv("CLKNETSIM_PHC_JITTER_ON"); + if (env) + phc_jitter_on = atoi(env); + env = getenv("CLKNETSIM_PHC_SWAP"); if (env) phc_swap = atoi(env); @@ -418,6 +428,9 @@ if (pcap) fclose(pcap); + + if (clknetsim_fd >= 0) + close(clknetsim_fd); } static void make_request(int request_id, const void *request_data, int reqlen, void *reply, int replylen) { @@ -784,7 +797,7 @@ static void add_to_timespec(struct timespec *tp, double offset) { tp->tv_sec += floor(offset); - tp->tv_nsec += (offset - floor(offset)) * 1e9; + tp->tv_nsec += round((offset - floor(offset)) * 1e9); normalize_timespec(tp); } @@ -793,17 +806,22 @@ } static double get_phc_delay(int dir) { + static unsigned int count = 0; double L, p, delay = 0.0; int k, lambda = 5; /* Poisson with uniform steps */ - if (phc_jitter > 0.0) { + if (phc_jitter > 0.0 && count >= phc_jitter_off) { for (L = exp(-lambda), p = 1.0, k = 0; k < 100 && p > L; k++) p *= get_random_double(); delay += (k + get_random_double()) / (lambda + 0.5) * phc_jitter * (0.5 + dir * phc_jitter_asym); } + count++; + if (count >= phc_jitter_on + phc_jitter_off) + count = 0; + return (delay + phc_delay / 2.0) * (freq_error + 1.0); } @@ -1412,6 +1430,8 @@ if (fd == URANDOM_FD) return URANDOM_FILE; + init_symbols(); + return _fdopen(fd, mode); } @@ -2048,24 +2068,24 @@ } else if (request == PTP_SYS_OFFSET_EXTENDED && fd == REFCLK_FD) { struct ptp_sys_offset_extended *sys_off = va_arg(ap, struct ptp_sys_offset_extended *); struct timespec ts, ts1, ts2; + double delay; int i; if (sys_off->n_samples > PTP_MAX_SAMPLES) sys_off->n_samples = PTP_MAX_SAMPLES; for (i = 0; i < sys_off->n_samples; i++) { + clock_gettime(CLOCK_REALTIME, &ts2); clock_gettime(REFCLK_ID, &ts); - sys_off->ts[i][1].sec = ts.tv_sec; - sys_off->ts[i][1].nsec = ts.tv_nsec; - } - - clock_gettime(CLOCK_REALTIME, &ts); - for (i = 0; i < sys_off->n_samples; i++) { - ts1 = ts, ts2 = ts; - add_to_timespec(&ts1, -get_phc_delay(-1)); - add_to_timespec(&ts2, get_phc_delay(1)); + delay = get_phc_delay(1); + add_to_timespec(&ts, -delay); + delay += get_phc_delay(-1); + ts1 = ts2; + add_to_timespec(&ts1, -delay); sys_off->ts[i][0].sec = ts1.tv_sec; sys_off->ts[i][0].nsec = ts1.tv_nsec; + sys_off->ts[i][1].sec = ts.tv_sec; + sys_off->ts[i][1].nsec = ts.tv_nsec; sys_off->ts[i][2].sec = ts2.tv_sec; sys_off->ts[i][2].nsec = ts2.tv_nsec; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clknetsim-0+git.20240610/clknetsim.bash new/clknetsim-0+git.20241128/clknetsim.bash --- old/clknetsim-0+git.20240610/clknetsim.bash 2024-06-10 14:23:41.000000000 +0200 +++ new/clknetsim-0+git.20241128/clknetsim.bash 2024-11-28 11:04:51.000000000 +0100 @@ -111,7 +111,7 @@ } start_server() { - local nodes=$1 ret=0 wrapper_options="" + local nodes=$1 ret=0 wrapper_options="" i j shift if [[ $CLKNETSIM_SERVER_WRAPPER == *valgrind* ]]; then @@ -128,6 +128,22 @@ fi kill $client_pids &> /dev/null + + i=0 + for pid in $client_pids; do + i=$[i + 1] + j=0 + while kill -0 $pid &> /dev/null; do + j=$[j + 1] + if [ $j -gt 30 ]; then + echo " node $i did not terminate" 1>&2 + ret=1 + break + fi + sleep 0.1 + done + done + client_pids=" " if ls tmp/valgrind.* &> /dev/null; then ++++++ clknetsim.obsinfo ++++++ --- /var/tmp/diff_new_pack.lPv5pb/_old 2024-12-10 23:49:52.788419939 +0100 +++ /var/tmp/diff_new_pack.lPv5pb/_new 2024-12-10 23:49:52.792420106 +0100 @@ -1,5 +1,5 @@ name: clknetsim -version: 0+git.20240610 -mtime: 1718022221 -commit: 633a0be069bac00e5aa562c0e5e15a3bf30b6af2 +version: 0+git.20241128 +mtime: 1732788291 +commit: 64acc4fd0ee92c2bafd9d1cf8097eb3632da685b