blob: dc42c0c1cc420fa83545f9ffa55148dfd1c7bdf6 [file] [log] [blame]
Pau Espin Pedrol50aa4922021-02-23 14:41:01 +01001osmo-pcu (0.9.0) unstable; urgency=medium
2
3 [ Pau Espin Pedrol ]
4 * Pass paging group instead of imsi where later is not needed
5 * Allow Gb PAGING-PS without P-TMSI
6 * Support Gb PAGING-CS
7 * Support PAGING-CS and PAGING-PS on on PTP-BVCI
8 * tests/rlcmac: print test name at the start
9 * tests/rlcmac: Memzero decoded struct
10 * tests/rlcmac: Fix missing commas with unexpected results
11 * tests/rlcmac: Use osmo_hexdump to print buffers
12 * tests/rlcmac: Don't check stderr output
13 * tests/rlcmac: Add test to showcase that decode_gsm_ra_cap() fails
14 * csn1: Extend CSN_SERIALIZE to allow 0 bit of length
15 * csn1: Allow CHOICE elements to re-process the bits used for the choice
16 * csn1: Fix pedantic compiler warnings in csn.1 dissectors
17 * csn1: Drop format_p union from CSN_DESCR
18 * gsm_rlcmac.cpp: Fix trailing whitespace
19 * cosmetic: csn1.cpp: Fix whitespace
20 * csn1.cpp: Rework ProcessError() function to print errors
21 * rlcmac: Return error code from csn1 encoder/decoder
22 * Check return code of rlcmac decode/encode functions
23 * rlcmac: Transform a few LOGPC messages to LOGP
24 * Fix trailing newline mess with LOGP(C) in rlcmac/csn1
25 * llc_queue::{dequeue,enqueue}() refactor
26 * gsm_rlcmac: fix Packet_Resource_Request_t: s/Slot/I_LEVEL_TN/
27 * tests/llc: Change unrealistic time jump to avoid runtime error under ARM
28 * Use clock_gettime(CLOCK_MONOTONIC) and timespec everywhere
29 * Use downlink BSSGP RA Cap IE
30 * tests/RLCMACTest: free allocated bitvectors
31 * tests/RLCMACTest: Several fixes and improvements to RAcap tests
32 * rlcmac: Don't pass array element to CSN1 descriptors
33 * csn1: Validate recursive array max size during decoding
34 * rlcmac: Fix bug receiving RA cap
35 * rlcmac: Log names of de/encoded rlcmac packet types
36 * rlcmac: Introduce MS Radio Access Capabilities 2 to fix related spare bits
37 * cosmetic: rlcmac: Fix comment typo and whitespace introduced recently
38 * rlcmac: Rename field to MS RA Cap2 in Additional_MS_Rad_Access_Cap_t
39 * pcu_l1_if.cpp: Add missing header ctype.h
40 * gsm_rlcmac: Use 'struct bitvec' instead of 'bitvec'
41 * cosmetic: Do not indent header includes inside extern C block
42 * gsm_rlcmac.cpp: Avoid declaring variable in for loop
43 * csn1.h: Fix trailing whitespace
44 * tbf.cpp: Include c++ <new> header required for new operator's replacement type
45 * gsm_rlcmac: Disable unused CSN1 descriptors
46 * Move gsm_rlcmac.cpp -> .c
47 * rlcmac: support decode FDD_CELL_INFORMATION of "UTRAN FDD Description
48 * rlcmac: add dissection of 2G->3G/4G PS handover
49 * csn1: Fix Several typos & whitespace
50 * csn1: verify enough bits present to decode whole CSN_UINT_ARRAY
51 * csn1: Properly verify CSN_BITMAP length
52 * csn1: Remove code block from CSN_NEXT_EXIST_LH
53 * pcu_l1_if: Don't use GSMTAP_CHANNEL_PACCH when sending unknown gsmtap blocks
54 * pdch: Avoid sending GSMTAP_CHANNEL_UNKOWN for rejected UL EGPRS data block
55 * tbf: Avoid crash: don't set TBF window size if setup failed
56 * bts: Rename mslot_class_from_ra
57 * bts: Fix Decoding EGPRS MultislotClass from 11-bit EGPRS PACKET CHANNEL REQUEST
58 * bts: Return uint8_t in egprs_mslot_class_from_ra()
59 * Use OSMO_FD_* instead of deprecated BSC_FD_*
60 * Expect ms object to exist before calling tbf_alloc_ul_tbf()
61 * Expect ms object to exist before calling tbf_alloc_dl_tbf()
62 * pdch: rcv_resource_request(): Clarify tbf_free only needed if MS used to exist beforehand
63 * Drop unneeded arg 'ta' in tbf_alloc_ul()
64 * bts: Drop specific functions to increase counters
65 * bts: Drop specific functions to add values to counters
66 * bts: Drop specific functions to add values to stats
67 * pcu: tbf_ul: Clean up maybe_schedule_uplink_acknack()
68 * sysmo: femtobts.h: Avoid redefining global variables
69 * rlc: Drop unused function gprs_rlc_data::put_data
70 * rlc: Move prepare() function out of gprs_rlc_data struct
71 * tbf_ul: Fix UL ACK not sent to MS if intermediate UL block is lost
72 * Get rid of class GprsCodingScheme
73 * gsmtap: Set signal level and SNR fields
74 * gprs_ms: Small clean ups in IMSI storage related code
75 * gprs_ms: Transfer known EGPRS MS class when mergling old MS
76 * tbf: Drop unneeded method set_tlli_from_ul
77 * pdch.cpp: Fix logging line format in rcv_block wrong length
78 * Set correct GSMTAP channel type for PDTCH messages returning error
79 * decoding.cpp: Improve logging in malformed UL data parsing
80 * tbf_dl: uint8_t is enough to store a TA value
81 * encoding: Encode TA as unsigned and check validty against GSM48_TA_INVALID
82 * encoding.cpp: Fix missing spacing in function param
83 * pdch.cpp: Avoid dropping existing DL TBF during rcv_resource_request
84 * pdch.cpp: Avoid resetting (egprs_)ms_class to unknown if not found in MS RadioAccCap
85 * pdch.cpp: Fix wrong annoying log line about non-scheduled ResourceReq received
86 * pdch.cpp: Store TLLI promptly on newly created TLLI in rcv_resource_request
87 * Fix typo in log message
88 * pdch: Drop unneeded notice log message in rcv pkt meas report
89 * Introduce log macro helper LOGPMS
90 * configure.ac: Fix trailing whitespace
91 * doc: Update VTY reference xml file
92 * Support setting rt-prio and cpu-affinity mask through VTY
93 * pdch: rcv pkt meas rep: Allocate MS object early in path and use it
94 * Fix recent typo preventing MS from registering
95 * gitignore: Add __pychache__ dir
96 * tbf: Don't log rlcmac_diag() output in separate lines
97 * gprs_ms_storage.h: Set pointer to NULL instead of 0
98 * Free all MS TBFs when receiving GPRS Suspension Request
99 * cosmetic: fix indentation alignment
100 * vty: Add 'show bts pdch' command
101 * cosmetic: Fix indentation of for loops
102 * cosmetic: Fix typo in comment
103 * Fix crash accessing NULL tbf->pdch[first_ts]
104 * contrib/jenkins: Enable parallel make in make distcheck
105 * Improve debug logging for alloc algos
106 * Fix several calls to LOGPAL
107 * Move gprs_rlcmac_ul_tbf::window to correct file
108 * Move constructor gprs_rlcmac_dl_tbf::BandWidth to correct file
109 * tbf: Make window() available to tbf base class
110 * tbf: Implement enable_egprs() once
111 * tbf: Set MS during constructor time
112 * Move ul_tbf allocation code to correct file
113 * Move dl_tbf allocation code to correct file
114 * tbf: Drop unused function disable_egprs()
115 * tests: ms: Pass correct pointer in constructor instead of NULL
116 * tbf: Clean up gprs_rlcmac_dl_tbf::handle()
117 * alloc_algo_b: Select TRX with least assigned TFIs during TBF alloc
118 * bts: define egprs_enabled as bool
119 * cosmetic: Fix ws between if keyword and parenthesis
120 * tbf_dl: Update (egprs_)ms_class for already known MS
121 * cosmetic: tests: pcu_emu: fix trailing whitespace
122 * gprs_ms: Use proper function to get CS
123 * Move BTS initial values inside bts.cpp
124 * pcuif: Improve BTS-supported CS/MCS handling
125 * Move EGPRS MS mode set to gprs_ms.cpp
126 * Take into account BTS supported (M)CS values when retrieving the maximum
127 * Enable egprs support through PCUIF from BTS/BSC
128 * pdch: Process received CS1-4 data blocks regardless of egprs_enabled
129 * tbf_dl: Don't fake EGPRS MS class when no related info is available
130 * tbf_ul: Allow non-egprs phones if EGPRS is enabled
131 * Get rid of bts->egprs_enabled
132 * Fix configuration of initial_(m)cs
133 * Fix mcs_is_valid(): UNKNOWN value is not a valid (M)CS
134 * gprs_ms: Avoid enabling EGPRS if no MCS are supported
135 * tbf_ul: Log mismatching TLLI on log message
136 * Fix ctr reports: Remove ctr description from already removed counter
137 * encoding: Fix duplicate word in log str
138 * sched: Fix sending GSMTAP DL data blocks with unset USF
139 * sched: Use correct GMSTAP category for EGPRS DL data blocks
140 * Support multiplexing of GPRS and EGPRS TBFs in one PDCH
141 * pdch: packet_paging_request: Put back non-fitting paging entry where where it was
142 * pdch: Log hexdump of decde failure for dl rlcmac block
143 * csn1: Fix readIndex pointer change in CSN_VARIABLE_ARRAY
144 * csn1: Log CSN_VARIABLE_ARRAY values as hex
145 * main: generate coredump and exit upon SIGABRT received
146 * tbf: Log previous TS when changing Control TS
147 * Implement downgrade to DL MCS1-4 when USF for GPRS_only MS
148 * Dl TBF: Get rid of LLC UI dummy blocks following other data
149 * rlcmac: Fix typo in MT_PACKET_CELL_CHANGE_NOTIFICATION value_string
150 * gprs_rlcmac_sched: Use helper structure to store several tbf pointer params
151 * sched: Convert code handling next_list array to be size independant
152 * Convert GprsMS and helpers classes to C
153 * tbf: Fix wrong verb used in log message
154 * .gitignore: ignore files ending with ~
155 * doc: Improve CS/MCS GPRS/EGPRS considerations in User Manual
156 * tbf: remove 'software error' logs from tbf_free
157 * ms: Replace struct var with rate_ctr
158 * AllocTest: Avoid queuing tons of to-be-freed ms
159 * gprs_ms: Mark ms_ctrg_desc static
160 * Workaround ASan false positive runtime errors under some platforms
161 * Split PCU global PCU object from BTS object
162 * Move T_defs_pcu from BTS to PCU object
163 * Move force_two_phase field from BTS to PCU
164 * Move alpha,gamma fields from BTS to PCU
165 * Move dl_tbf_preemptive_retransmission field from BTS to PCU
166 * Move dl_arq_type field from BTS to PCU
167 * Move cs_adj* fields from BTS to PCU
168 * Move cs_downgrade_threshold field from BTS to PCU
169 * Move (m)cs_lqual_ranges fields from BTS to PCU
170 * Move ns_dialect field from BTS to PCU
171 * Move fc_* fields from BTS to PCU
172 * tests/tbf: Allocate PCU per test instead of globally
173 * Move ws_* fields from BTS to PCU
174 * Move llc_* fields from BTS to PCU
175 * Fix configuration mess of initial_cs/mcs between PCUIF and VTY
176 * Unify BTS into a C usable structure
177 * Get rid of bts singletons
178 * Rename 'bts_data' leftovers to 'bts'
179 * bts: combine bts_{init,cleanup} into consturctor/destructor methods
180 * Get rid of unused gsm_timer.{cpp,h}
181 * Convert gprs_bssgp_pcu.cpp to C
182 * Move tbf::free_all static methods to proper object files
183 * Convert osmo_bts_sock.cpp to C
184 * Allow multiple bts objects in PCU
185 * bts: Store RAC+CI from info_ind
186 * Get rid of singleton gprs_bssgp_pcu_current_bctx()
187 * Initial handling support for RIM messages
188 * gprs_pcu: Use libosmocore osmo_cgi_ps_cmp API
189 * ms: Drop always-false check
190 * sched: Check if egprs is enabled in TBF rather than MS being egprs capable
191 * tbf: Drop always-true condition checking for MS
192 * encoding: fix typos in comment
193 * ms: Set proper initial MCS values setting mode EGPRS_GMSK
194 * ms: Properly handle EGPRS_GMSK mode in ms_max_cs_dl/ul()
195 * Fix Dl EGPRS data blocks being generated occasionally on GPRS TBFs
196 * sched: Avoid picking TBF with nacked dl blocks when GMSK is required
197 * tbf: Make tbf_ms() param const
198 * Introduce NACC support
199 * NACC: Fix crash freeing struct if CTRL conn was refused during alloc
200 * NACC: delay CTRL conn socket init until it's needed
201 * NACC: allow setting keep time for entries in neigh and si cache
202 * NACC: Configure neighbor and SI resolution timeout values
203 * NACC: Send only Pkt Cell Chg Continue if SI retrieve fails
204 * doc: Mark PCU node red in network node diagram
205 * doc: Introduce section documenting NACC support
206 * nacc: Improve log line failing to establish CTRL neigh conn
207 * Update TS 04.60 references to new TS 44.060
208 * Drop comment about an already implemented TODO
209 * Move src/tbf.txt to doc/
210 * encoding: Fix comment description of S/P field
211 * tbf: Reuse stored result in variable in check_polling()
212 * tbf: Constify some methods
213 * nacc: Fix typo in function name
214 * nacc: Implement Pkt Cell Change Continue retransmission
215 * nacc: Avoid RIM procedures targeting cells under same PCU
216 * rlc.h: Fix struct bit fields on big endian systems
217 * cosmetic: fix typo in comment
218 * nacc_fsm: Move code filling struct to helper function
219 * nacc_fsm: Remove NACC_EV_RX_SI from in_event_mask of some states
220 * nacc_fsm: Support receiving Pkt Cell Change Notify in state WAIT_RESOLVE_RAC_CI
221 * nacc_fsm: nacc_fsm: Support receiving Pkt Cell Change Notify in state WAIT_REQUEST_SI
222 * nacc_fsm: Support receiving Pkt Cell Chg Notif while in some advanced states
223 * nacc_fsm: Improve log when sending RIM RAN-INFO to gather SI from remote cell
224 * vty: Write 'neighbor resolution' config to file
225 * cosmetic: fix line indentation
226 * sched: Avoid selecting TBF to tx NACC Dl msg if no TFI is assigned
227 * tests: Explicitly drop category from log
228 * tests: Replace deprecated API log_set_print_filename
229 * Use NULL as default value for pointer type
230 * find_multi_slots: Avoid calling mslot_class_get_tx() on each iteration
231 * find_multi_slots: Avoid multiple calls to mslot_class_get_rx()
232 * find_multi_slots: Mark mslot_class properties const
233 * find_multi_slots: Avoid multiple calls to mslot_class_get_type()
234 * Use ALPHA value received in SI13 from PCUIF
235
236 [ Vadim Yanitskiy ]
237 * pcu_l1_if.cpp: fix NULL-pointer dereference in imsi2paging_group()
238 * gsm_timer: fix comparison of constant LONG_MAX with an integer
239 * encoding: fix log_alert_exit(): do not treat error as format string
240 * tests/alloc: fix implicit conversion from 'double' to 'int8_t'
241 * gprs_bssgp_pcu: fix invalid use of non-static data member 'frame'
242 * gprs_bssgp_pcu: fixup: fix length check in gprs_bssgp_pcu_rx_dl_ud()
243 * csn1: fix csnStreamDecoder(): avoid conditional calls to bitvec_read_field()
244 * VTY: get rid of pcu_vty_go_parent() / pcu_vty_is_config_node()
245 * VTY: install talloc context introspection commands
246 * pcu_sock: fix memleak, allocate pcu_sock_state on stack
247 * pcu_sock: cosmetic: fix typo in a comment message
248 * tbf: cosmetic: fix spacing in gprs_rlcmac_tbf::create_ul_ass()
249 * tbf: fix NULL pointer dereference in create_[ul|dl]_ass()
250 * encoding: assert return value of bitvec_set_u64()
251 * csn1: fix some mistaken CSN.1 error names
252 * csn1: fix csnStreamDecoder(): catch unknown CSN_CHOICE values
253 * tests/rlcmac: mark Packet Polling Request as malformed
254 * csn1: fix existNextElement(): use bitvec_get_bit_pos()
255 * tests/rlcmac: additionally match debug output of the CSN.1 codec
256 * csn1: get rid of C++ specific code, compile with GCC
257 * csn1: fix csnStreamDecoder(): do not subtract no_of_bits twice
258 * csn1: fix csnStreamDecoder(): always keep remaining_bits_len updated
259 * csn1: fix csnStreamDecoder(): update bit_offset in CSN_EXIST{_LH}
260 * csn1: bitvec_get_uint() may return a negative, use %d
261 * csn1: use proper format specifier for unsigned integers
262 * gsm_rlcmac: fix misleading LOGP statement in decode_gsm_ra_cap()
263 * tests/rlcmac: fix malformed MS RA capability in testRAcap()
264 * tests/rlcmac: also verify encoding of MS RA Capability
265 * tests/rlcmac: add a new test vector for Packet Resource Request
266 * csn1: fix csnStreamDecoder(): skip bits unhandled by serialize()
267 * tests/rlcmac: also enable logging for DRLCMACDATA category
268 * rlcmac: fix encode_gsm_*(): do not suppress encoding errors
269 * csn1: fix: do not return 0 if no bits left in the buffer
270 * BSSGP: cosmetic use OSMO_IMSI_BUF_SIZE from libosmocore
271 * BSSGP: fix: properly encode P-TMSI in RR Paging Request
272 * pdch: fix packet_paging_request(): properly print paging MI
273 * pdch: cosmetic: use GSM_MI_TYPE_* constants from libosmocore
274 * fix: properly include pure C headers from C++ code
275 * l1if: fix pcu_rx_rach_ind(): use proper format string specifiers
276 * sba: fix possible memleak in SBAController::alloc()
277 * TBF/UL: fix rcv_data_block_acknowledged(): print the actual TLLI
278 * fix egprs_mslot_class_from_ra(): multislot class may not be present
279 * l1if: fix: s/pcu_rx_rach_ind_pdtch/pcu_rx_rach_ind_ptcch/g
280 * csn1: fix M_CHOICE: restirct maximum length of the choice list
281 * csn1: fix csnStreamEncoder(): also check length of the choice list
282 * csn1: fix csnStreamEncoder(): always check the choice index
283 * csn1: fix: never use enumerated types in codec structures
284 * encoding: cosmetic: use RLC_MODE_ACKNOWLEDGED where possible
285 * RLC/MAC: implement decoding of EGPRS Packet Channel Request
286 * encoding: fix write_ia_rest_egprs_uplink_sba(): add missing CHECK(rc)
287 * doc/manuals: fix typo in overview.adoc: s/Omsocom/Osmocom/g
288 * bts: refactor handling and parsing of RACH.ind
289 * BTS::parse_rach_ind(): properly handle EGPRS Packet Channel Request
290 * bts: add send_gsmtap_rach(), also send PTCCH/U over GSMTAP
291 * bts: fix send_gsmtap_rach(): properly pack 11 bit RA
292 * bts: cosmetic: use DUMMY_VEC for padding where possible
293 * encoding: drop log_alert_exit(), use OSMO_ASSERT() instead
294 * encoding: assert() presence of Downlink TBF
295 * direct-phy: fix handle_ph_ra_ind(): handle PH-RA.ind on PRACH SAPI
296 * debian/control: change maintainer to the Osmocom team / mailing list
297 * pcu_l1_if: use proper format specifier for PCUIF version
298 * pcu_l1_if: constify the argument of pcu_rx_info_ind()
299 * pcu_l1_if: cosmetic: rename both 'trx'/'ts' to 'trx_nr'/'ts_nr'
300 * pcu_l1_if: cosmetic: move struct 'gprs_rlcmac_pdch' into the for loop
301 * pcu_l1_if: cosmetic: correct error message in pcu_rx_info_ind()
302 * gsm_rlcmac: use consistent naming for [Extended] Packet Timing Advance
303 * tbf: cosmetic: use GSM_MACBLOCK_LEN where possible
304 * tbf: allocate the bitvec on stack in create_{dl,ul}_ass()
305 * encoding: constify 'tbf' in UL/DL assignment functions
306 * encoding: do not encode out of range Timing Advance values
307 * encoding: fix RRBP field in write_packet_uplink_assignment()
308 * encoding: use bool for use_egprs in write_packet_uplink_assignment()
309 * encoding: pass pdch slot directly to encoding functions
310 * encoding: clarify docstring for write_packet_downlink_assignment()
311 * encoding: use CSN.1 codec to generate Packet Uplink Assignment
312 * encoding: implement handing of hopping parameters
313 * encoding: fix gen_freq_params(): do not check pdch twice
314 * pcuif_proto: version 10: add frequency hopping parameters
315 * pcu_l1_if: cosmetic: use ARRAY_SIZE() in pcu_rx_info_ind()
316 * pcu_l1_if: correct logging level in pcu_rx_info_ind()
317 * pcu_l1_if: cosmetic: make {local,remote}_sockaddr scoped variables
318 * pcu_l1_if: use proper format string specifiers: %d -> %u
319 * pcu_l1_if: print NSVC address in more common format
320 * gprs_bssgp_pcu: make osmo_sockaddr local/sgsn arguments const
321 * gprs_bssgp_pcu: fix possible memleak in gprs_nsvc_create_and_connect()
322 * struct gprs_rlcmac_bts: remove unused 'nsei' field
323 * gprs_bssgp_pcu: fix: do not crash on receipt of subsequent INFO.ind
324 * doc/manuals: (re-)generate XML VTY reference automatically
325 * fix tbf_select_slot_set(): use LOGP() instead of LOGPC()
326 * main: remove line breaks in print_help(), increase spacing
327 * main: add --vty-ref-mode, use vty_dump_xml_ref_mode()
328 * BSSGP: use tlvp_val8() in gprs_bssgp_pcu_rx_paging_cs()
329 * BSSGP: constify argument 'tp' of gprs_bssgp_pcu_rx_paging_{cs,ps}
330 * TLLI 0x00000000 is a valid TLLI, use 0xffffffff instead
331 * gprs_rlcmac_sched: fix incorrect SBA frame number assignment
332 * bts: fix uninitialized memaccess in BTS::send_gsmtap_rach()
333 * bts: fix uninitialized memaccess in BTS::send_gsmtap()
334 * tests/rlcmac: add more test vectors for Packet Resource Request
335 * contrib/osmo-pcu.spec.in: require libosmo* version 1.4.0
336 * contrib/osmo-pcu.spec.in: add missing libosmoctrl dependency
337 * vty: register libosmocore's FSM introspection commands
338
339 [ Anders Broman ]
340 * csn1: Update M_NULL CSN_DESCR to match wireshark
341 * csn1: packet-csn1.c:179: warning: 'pui8' may be used uninitialized in this function
342 * csn1: Fix warning with -Wmissing-prototypes
343 * csn1: Try to fix cast discards '__attribute__((const))' qualifier from pointer target type
344 * gsm_rlcmac.cpp: hanged all M_BIT macros to M_UINT, as M_BIT does not use the referenced hf.
345
346 [ Jeff Morriss ]
347 * csn1: shuffle decrements of remaining_bits_len
348
349 [ Pascal Quantin ]
350 * csn1: Fix an infinite loop in CSN.1 dissector when having more than 255 padding bits
351 * gsm_rlcmac.h: Remove Uplink messages from the RlcMacDownlink_t structure
352 * gsm_rlcmac: Enhance dissection of PSI1
353 * gsm_rlcmac.cpp: Do not skip too many lines of the CSN_DESCR when the field is missing
354 * gsm_rlcmac.cpp: fix an out of bounds access
355 * gsm_rlcmac.cpp: fix another global-buffer-overflow error reported by ASAN
356 * gsm_rlcmac.cpp: fix global-buffer-overflow error reported by ASAN
357
358 [ Guy Harris ]
359 * csn1: Don't cast away constness
360
361 [ Alexis La Goutte ]
362 * csn1: fix this statement may fall through [-Werror=implicit-fallthrough=] found by gcc7
363
364 [ Bill Meier ]
365 * gsm_rlcmac.h: #if 0 unused stuff
366
367 [ Gerald Combs ]
368 * gsm_rlcmac.h: Make sure we have a corresponding 'u' member to RlcMacDownlink_t for every call
369
370 [ Vincent Helfre ]
371 * gsm_rlcmac: add dissection of NAS container
372 * gsm_rlcmac: improve dissection of MS RA Capability IE
373
374 [ AndersBroman ]
375 * gsm_rlcmac: Update : PACKET RESOURCE REQUEST to Release 14.0.0
376
377 [ Keith ]
378 * Send UL-CTRL Packet to GSMTAP even if we fail to decode.
379 * Don't check ul_control_block before decoding into it.
380
381 [ Harald Welte ]
382 * csn1.c: Almost all of the logging is DEBUG, not NOTICE
383 * TODO: remove those that have obviously been implemented 5+ years ago
384 * bts.cpp: Increase constructor priority
385 * Use osmo_fd_setup() whenever applicable
386 * Use osmo_fd_*_{disable,enable}
387 * gb manual: 08.16 -> 48.016 / 08.18 -> 48.018
388 * gb manual: NS is implemented in libosmogb, not libosmocore
389 * manuals/gb/ns.adoc: Update documentation regarding SNS capability
390 * migrate to DLBSSGP as log sub-system for BSSGP
391
392 [ Eric ]
393 * configure.ac: fix libtool issue with clang and sanitizer
394 * tbf: add virtual destructor
395
396 [ Philipp Maier ]
397 * gprs_debug: Use only LOGL_NOTICE as default loglevel
398 * vty: add attributes to VTY commands indicating when they apply
399 * pcu_main: add commandline option --vty-ref-xml
400 * gprs_bssgp_rim: add serving BSS NACC application
401
402 [ Oliver Smith ]
403 * contrib: import RPM spec
404 * contrib: integrate RPM spec
405 * Makefile.am: EXTRA_DIST: debian, contrib/*.spec.in
406 * contrib/jenkins: don't build osmo-gsm-manuals
407 * configure.ac: set -std=gnu11
408
409 [ Neels Hofmeyr ]
410 * use new osmo_mobile_identity api (avoid deprecation)
411 * paging: pass struct osmo_mobile_identity, not encoded IE bytes
412
413 [ Alexander Couzens ]
414 * pcuif_proto: version 0xa: add support for IPv6 NSVCs
415 * Revert "pcuif_proto: version 0xa: add support for IPv6 NSVCs"
416 * pcuif_proto: version 10: add support for IPv6 NSVCs
417 * Use the new NS2 lib
418 * Rework NS configuration over the info indication
419 * pcu_l1_if: fix misaligned assignment of remote address
420 * NS2: follow the change of ownership
421 * gprs_bssgp_pcu: follow ns2 library changes
422 * NS2: rework handling of unknown primitive
423 * ns2: follow ns2 dialect changes
424 * ns2: follow changes to add a unique name to all binds
425 * ns2: follow ns2 sns api changes
426 * gprs_ns2: set default dialect to ipaccess
427 * gprs_rlcmac_sched: don't leak a sched_dummy()
428 * gprs_rlc_ts_alloc: ensure no rolling slots are allocated
429 * follow gprs_ns2 API enum changes
430 * gprs_ns2: migrate to the new vty syntax
431 * gprs_bssgp: rework and rename ns_create_nsvc -> ns_configure_nse
432 * gprs_bssgp: rename gprs_ns_config -> gprs_ns_update_config
433 * gprs_bssgp: use gprs_ns2_sns_add_bind() to allow the NSE to use the binds for IP-SNS configuration
434
435 -- Pau Espin Pedrol <pespin@sysmocom.de> Tue, 23 Feb 2021 14:41:00 +0100
436
Pau Espin Pedrolb507e422020-01-03 19:40:02 +0100437osmo-pcu (0.8.0) unstable; urgency=medium
438
439 [ Alexander Couzens ]
440 * tests: test encoding of egprs ul ack/nacks
441 * tbf_dl: add comments to the scheduler
442 * encoding: fix space, tabs
443
444 [ Vadim Yanitskiy ]
445 * osmobts_sock.cpp: pcu_sock_cb(): use libosmocore's socket API
446 * osmobts_sock.cpp: pcu_sock_read(): use stack buffer, not heap
447 * osmobts_sock.cpp: pcu_sock_read(): further simplify the code
448 * osmobts_sock.cpp: do not print the same debug message twice
449 * VTY: refactor pcu_vty_show_ms_all(): use show_ms()
450 * VTY: fix command 'show tbf all': properly filter TBFs
451 * BSSGP: do not reject SUSPEND ACK / NACK messages
452 * BSSGP: properly print BVCI for signalling messages (BVCI=0)
453 * tests/tbf: suspend warnings about the link quality measurements
454 * GprsMs::update_cs_ul(): clarify the meaning of old_link_qual
455 * gprs_bssgp_destroy(): fix memleak and NULL-pointer dereference
456 * PTCCH: implement basic message codec and API
457 * PTCCH: properly handle RTS.req for PCU_IF_SAPI_PTCCH
458 * pcuif_proto.h: extend RACH.ind with TRX / TS numbers
459 * PTCCH: properly handle RACH.ind for PCU_IF_SAPI_PTCCH
460 * VTY: add warning about changing PCU socket path at run-time
461 * VTY: cosmetic: use osmo_talloc_replace_string()
462
463 [ Pau Espin Pedrol ]
464 * cosmetic: tbf: Rename T and N arrays
465 * Use proper API osmo_timer_setup() to set up timer struct
466 * Introduce osmo_tdef infra and timer VTY commands
467 * bts.cpp: Fix osmo_tdef initialization on older g++ compilers
468 * Use osmo_tdef for BSSGP T1 and T2
469 * Use osmo_tdef to implement T3190
470 * tests: TbfTest: Unify stderr and stdout to ease debugging
471 * Use osmo_tdef to implement ms-idle-time
472 * Use osmo_tdef to implement dl-tbf-idle-time
473 * pdch.cpp: Refactor bitvec param passing in rcv_control_block
474 * pdch.cpp: Use pcu_l1_meas previously filled by lower layers
475 * cosmetic: fix whitespace
476 * Move out tbf subclasses from tbf.h to their own headers
477 * Move tbf_{dl,ul} child constructors to respective .cpp files
478 * tbf_dl: Setup m_llc_timer in constructor using osmocom API
479 * tbf_dl.cpp: Remove dup call to tbf_update_ms_class() in state GPRS_RLCMAC_WAIT_RELEASE
480 * vty: Fix osmo_tdef timers not listed in write config
481 * Log RACH Requests using GSMTAP
482 * Log AGCH and PCH blocks using GSMTAP
483 * pcu_l1_if.cpp: Fix GSMTAP Imm Assign PCH wrong encoding
484 * pcu_l1_if.cpp: Drop unneeded byte in Imm Ass PCH buffer
485 * pcu_l1_if.cpp: Imm Assign PCH: clarify size of different items
486 * pcu_l1_if.cpp: Replace value 23 with libosmocore's GSM_MACBLOCK_LEN
487 * Fix assertion hit upon CCCH Paging Request
488 * doc: vty: Update osmo-pcu_vty_reference.xml
489 * Clarify (M)CS related VTY attributes
490 * Remove dash from name used in VTY cmd prompt
491 * tbf_dl.cpp: Fix typo in log line
492 * pcu_l1_if: Check pag_req id_lv len fits buffer
493 * prs_bssgp_pcu.cpp: Mark priv funcs as static and remove trailing whitespace
494 * Fix trailing whitespace
495 * fix typo in log message
496 * Log BVCI PTP value upon msg recv
497 * Split identity_lv param into mi+mi_len
498
499 [ Oliver Smith ]
500 * doc: update generated VTY reference
501 * tbf_dl: make preemptive retransmission optional
502 * Forward ETWS Primary Notification to MS
503 * tests/app_info: fix compiling with older g++
504 * configure.ac: set C and C++ dialects
505
506 [ Harald Welte ]
507 * manual: Fix copy+paste error
508 * manual: Fix documentation missing "-D" command line option
509 * manual: Add missing documentation for '-i' command line option
510
511 -- Pau Espin Pedrol <pespin@sysmocom.de> Fri, 03 Jan 2020 19:40:02 +0100
512
Pau Espin Pedrol19b15a52019-08-07 21:09:53 +0200513osmo-pcu (0.7.0) unstable; urgency=medium
514
515 [ Rafael Diniz ]
516 * Added support for daemonize to osmo-pcu.
517 * Fix help message formatting of osmo-pcu.
518
519 [ Max ]
520 * Don't install pcuif_proto.h header
521 * Move C include to proper place
522 * Add define for dummy burst string
523 * Add encoding tests for Immediate Assignment
524 * Clarify write_immediate_assignment() signature
525 * Restructure IA Rest Octets encoders
526 * Rewrite Packet Downlink Assignment
527 * Rewrite EGPRS Packet Uplink IA Rest Octets for MBA
528 * Rewrite EGPRS Packet Uplink IA Rest Octets for SBA
529 * MCS: internalize 'family' parameter
530 * EDGE tests: reduce code duplication
531 * MCS: remove dead code
532 * EDGE tests: remove no-op check
533 * Use msgb_eq_data_print() in tests
534 * Tighten lqual table limits check
535 * Enable LGLOBAL logging for TBF tests
536 * Log (M)CS UL update errors
537 * MCS: move Coding Scheme enum outside of class definition
538 * Make get_retx_mcs() into regular function
539 * MCS: remove unused function
540 * Debian: bump copyright year
541 * Use unique NSEI/BVCI/NSVCI in TBF tests
542 * MS store: move test helper to unit test
543 * Explicitly clean up BTS singleton
544 * MCS: move HeaderType enum outside of class definition
545 * MCS: use value_string for conversion
546 * TBF-DL: log MCS as string
547 * Fix TA index encoder
548 * MCS: move Mode enum outside of class definition
549 * MCS: add mcs_is_*() helpers
550 * MCS: add Channel Coding Command encoder
551 * Fix Channel Coding Command for MCS
552 * Rewrite Packet Uplink IA Rest Octets for MBA
553 * Rewrite Packet Uplink IA Rest Octets for SBA
554 * Use Timing Advance Index in UL assignments
555 * TBF: update MCS counters
556 * TBF-DL: cosmetic update for helper routines
557 * Update IA Rest Octets encoding
558 * TS alloc: expand tests log
559 * vty: add commands to show TBF of a certain kind
560 * Update MCS selection for retransmission
561 * cosmetic: use const pointer for bts_data
562 * Add test for MS mode and (M)CS settings
563 * Use libosmocore for IMSI parsing
564
565 [ Harald Welte ]
566 * Mark gprs_ns_reconnect() as static (not used outside of C file)
567 * Optionally Use the NS Sub-Network-Service (SNS) on Gb
568 * pcu_l1_if: Fix erroneous endian-swapping of the CellID
569 * Forward GPRS SUSPEND REQ from BTS to SGSN using BSSGP
570 * gprs_debug: Use named initializers and explicit array indicies
571 * bssgp: Fix dead code: PDUT_STATUS can never reach this part
572
573 [ JF Dionne ]
574 * encoding: Fixes TMSI vs MI bit selection in repeated page info
575
576 [ Oliver Smith ]
577 * tests: use -no-install libtool flag to avoid ./lt-* scripts
578 * debian: create -doc subpackage with pdf manuals
579 * contrib/jenkins.sh: run "make maintainer-clean"
580
581 [ Daniel Willmann ]
582 * Include pdch.h in bts.h even if we're not compiling C++
583 * oc2g: Remove custom alarms
584 * oc2g: Change log type (Litecell15->Oc2g)
585 * jenkins.sh: Add oc2g build support
586 * manuals: Add script to regenerate vty/counter documentation
587 * manuals: Update VTY documentation
588
589 [ Jean-Francois Dionne ]
590 * Initial commit for OC-2G support.
591
592 [ Minh-Quang Nguyen ]
593 * OC-2G: Fix missing header
594 * OC-2G: Fix TA adjustment
595 * OC-2G: Always use positive TA information provided in PH-RA-IND
596
597 [ Alexander Couzens ]
598 * gprs_bssgp_pcu: make gprs_bssgp_ns_cb public
599 * gprs_bssgp_pcu: explicit allocate & initialize bssgp_nsi instance
600 * encoding: correct encoding of CRBB in ACK/NACK when not byte aligned
601 * encoding: use `/* */` for comments instead of `#if 0 #endif`
602 * egprs_rlc_compression: fix white spaces
603 * tests/BitcompTest: fix wording in log message
604 * rlc: replace int with uint16_t
605 * Encoding: drop struct gprs_rlcmac_bts* from all functions
606 * decompress_crbb: add length argument for search_runlen
607 * Encoding: write_packet_ack_nack_desc_egprs: don't use a reference for rest_bits
608 * bts.cpp: ensure left-shift operation does not exceed uint32_t
609 * Encoding: use uint16_t when interacting with the window object
610 * Encoding: ACK/NACK: always encode with length field present
611
612 [ Keith ]
613 * Cosmetic: Osmcoom -> Osmocom
614
615 [ Vadim Yanitskiy ]
616 * src/pcu_l1_if.cpp: fix: properly pass measurements from PCUIF
617 * gprs_bssgp_pcu_rx_dl_ud(): fix: BSSGP_IE_IMSI is optional
618 * gprs_bssgp_pcu.cpp: check return code of gsm48_mi_to_string()
619 * gprs_bssgp_pcu_rx_dl_ud(): use OSMO_IMSI_BUF_SIZE
620
621 [ Thorsten Alteholz ]
622 * fix spelling errors detected by lintian
623
624 [ Eric Wild ]
625 * ubsan: fix shift
626
627 [ Pau Espin Pedrol ]
628 * Remove undefined param passed to {logging,osmo_stats}_vty_add_cmds
629 * Require newer libosmocore to avoid compile failures
630
631 -- Pau Espin Pedrol <pespin@sysmocom.de> Wed, 07 Aug 2019 21:09:53 +0200
632
Harald Welte99278b12019-01-21 19:03:52 +0100633osmo-pcu (0.6.0) unstable; urgency=medium
634
635 [ Harald Welte ]
636 * debian/rules: Don't overwrite .tarball-version
637 * gprs_rlcmac_received_lost(): Fix regression / uninitialized now_tv
638 * initial checkin of manuals to public repo
639 * Add link to Asciidoc source code of manual
640 * Initial place-holder for the new Gb/IP interface documentation
641 * Gb message sequence chart: flip sides (SGSN should be right)
642 * Gb message sequence chart: Add notion of PCU unix domain socket
643 * Gb: Various spelling fixes
644 * gb: Some language improvements, formatting changes
645 * consistently use '3GPP TS' not sometimes 3GPP TS and sometimes TS.
646 * gb/NS: Clarify the language regarding the UDP port numbers / socket
647 * vty-ref: Update URI of docbook 5.0 schema
648
649 [ Pau Espin Pedrol ]
650 * Cleanup of systemd service files
651 * configure.ac: Set CXXFLAGS during --enable-sanitize
652 * Install systemd services with autotools
653 * Move examples/ to doc/examples/
654 * Install osmo-pcu.cfg to docdir/examples
655 * Allow easily disabling GFDL references
656
657 [ Stefan Sperling ]
658 * check for overlong unix socket paths
659
660 [ Max ]
661 * deb: add missing copyright file
662 * OsmoPCU: fix Gb documentation front page
663 * OsmoPCU: expand NS documentation
664 * OsmoPCU: expand BSSGP documentation
665 * OsmoPCU: add MSC chart
666
667 [ Neels Hofmeyr ]
668 * Importing history from osmo-gsm-manuals.git
669 * make clean: also remove generated image files
670 * add 'make check' target
671 * fix 'make clean': shell glob, ignore failure
672 * refactor Makefile build rules, don't use the FORCE
673
674 [ Jonathan Brielmaier ]
675 * fix various typos across all manuals
676
677 [ Philipp ]
678 * configuration: fixing typos
679
680 [ Alexander Couzens ]
681 * OsmoPCU: add rate counter documentation
682
683 [ Daniel Willmann ]
684 * Change OpenBSC mentions to OsmoBSC where applicable
685
686 [ Oliver Smith ]
687 * build manuals moved here from osmo-gsm-manuals.git
688 * Fix DISTCHECK_CONFIGURE_FLAGS override
689 * contrib/jenkins.sh: build and publish manuals
690 * contrib: fix makedistcheck with disabled systemd
691
692 -- Harald Welte <laforge@gnumonks.org> Mon, 21 Jan 2019 19:03:52 +0100
693
Pau Espin Pedrol448750e2018-07-27 21:56:39 +0200694osmo-pcu (0.5.1) unstable; urgency=medium
695
696 [ Harald Welte ]
697 * Don't register SIGHUP handler without actually handling SIGHUP
698
699 [ Pau Espin Pedrol ]
700 * tbf: Fix memset(0) on object with no trivial copy-assignment
701 * rlc: Fix memset(0) on object with no trivial copy-assignment
702 * jenkins.sh: use flag --enable-werror for sysmo and none
703 * tbf: Use incrementing id for rate_ctr_group_alloc
704 * tbf: Replace '.' in counter names with ':'
705
706 [ Stefan Sperling ]
707 * fix a one-byte stack buffer overrun in osmo-pcu
708 * read monotonic clock with clock_gettime() instead of gettimeofday()
709 * fix time-delta calculations for measurement reports
710 * change log level of "DL packet loss" log messages
711 * check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg()
712
713 -- Pau Espin Pedrol <pespin@sysmocom.de> Fri, 27 Jul 2018 21:56:38 +0200
714
Pau Espin Pedrolf1a334b2018-05-03 16:20:01 +0200715osmo-pcu (0.5.0) unstable; urgency=medium
716
717 [ Neels Hofmeyr ]
718 * jenkins: use osmo-clean-workspace.sh before and after build
719 * vty: skip installing cmds now always installed by default
720 * implement support for 3-digit MNC with leading zeros
721 * configure: add --enable-werror
722 * mslot_class: find_free_tfi(): use uint32_t to shift 1 << 31
723 * mslot_class: two more: use uint32_t to shift 1 << 31
724 * Revert "Use Timing Advance Index in UL assignments"
725 * Revert "Rewrite Packet Uplink Assignment"
726 * Revert "Rewrite Packet Downlink Assignment"
727 * configure: fix --enable-sysmocom-dsp and --with-sysmobts flags
728 * configure: properly quote CFLAGS in lc15 check
729 * Revert "Rewrite EGPRS Packet Uplink Assignment"
730 * use osmo_init_logging2() with proper talloc ctx
731
732 [ Minh-Quang Nguyen ]
733 * PCU: Fix TA adjustment
734 * PCU: display TA information in TBF stats
735
736 [ Max ]
737 * Remove unused parameter
738 * Move multislot table to separate file
739 * Replace '.' in counter names with ':'
740 * Fix compiler warning
741 * TBF: log timer override
742 * TBF: fix compiler warning in test
743 * TBF: expand timer logging
744 * vty: print class and TBFs for each MS
745 * DL window: constify resend_needed() function
746 * TBF: move EGPRS enablement into (U|D)L-TBF
747 * TBF-DL: fix misleading idle time check
748 * TBF: remove unused variable
749 * Remove unused includes and forward declarations
750 * Fix tests after rate_ctr change
751 * Introduce LOGTBF* for consistent logging
752 * TBF: implement independent T31xx timers
753 * TBF: add N3101 counter
754 * Fix warnings
755 * Add function to get max supported MS class
756 * Add --enable-sanitize configure option
757 * Enable sanitize for CI test
758 * Add tests for pcu_lsb()
759 * Add optional profiling support
760 * TBF: unify timer handling
761 * TBF: log timer invocation source
762 * TBF: bail out for unknown timers
763 * Fix llc_queue_size() type
764 * TBF-DL: mark rcvd_dl_ack() parameters as boolean
765 * window: move encoding into functions
766 * cosmetic: clarify coding scheme and puncturing
767 * Make TBF state private
768 * TBF: cleanup state flag handling
769 * Clarify RACH-related interfaces
770 * TBF-UL: add simpler test helper
771 * Avoid code duplication in TBF test
772 * TBF: move window parameters to UL/DL level
773 * TBF-DL: move priority computation into function
774 * TBF: unify EGPRS window calculation
775 * Don't access TBF internals in vty functions
776 * Fix jenkins.sh to match jenkins job axis filter
777 * Allocate global context for TypesTest
778 * Fix sanitizer build
779 * Rewrite EGPRS Packet Uplink Assignment
780 * Rewrite Packet Downlink Assignment
781 * Rewrite Packet Uplink Assignment
782 * Use Timing Advance Index in UL assignments
783 * Allow specifying sysmocom headers explicitly
784 * TBF: log source of state transitions
785 * jenkins.sh: Disable building doxygen for deps
786 * Set V_N and V_B to known initial state
787 * TBF: add dedicated log categories
788 * TBF: make UL/DL state internal
789 * TBF: make UL ack state internal
790 * TBF: make poll state internal
791 * TBF: adjust test log levels
792 * Add tests for find_multi_slots()
793 * AllocTest: adjust test_alloc_b()
794 * AllocTest: expand test output
795 * AllocTest: remove assumption on max MS class
796 * Add multislot classes from latest spec
797 * cosmetic: fix whitespace issue with include files
798 * TBF: decrease L1 logging verbosity in test
799 * TBF: override send function via linker option
800 * Simplify TS alloc: adjust allocator signatures
801 * Simplify TS alloc: fix allocation calls
802 * Simplify TS alloc: avoid TS reassignment
803 * Simplify TS alloc: use defines for constants
804 * Simplify TS alloc: adjust function signatures
805 * TS alloc: print suggested TRX on allocation errors
806 * Simplify TS alloc: internalize TRX check
807 * TBF: decrease logging verbosity for traffic
808 * TBF: add helpers for assignment type handling
809 * TBF: show assignment kind in vty
810 * vty: drop unused function
811 * RACH: improve single block detection
812 * TBF: move common test code into functions
813 * emu: use libosmocore definitions
814 * Use explicit type for pcu_lsb()
815 * Move paging generation into PDCH
816 * Move include guard to the top
817 * Update header includes
818 * Simplify TS alloc: split off RX mask computation
819 * Simplify TS alloc: separate capacity computation
820 * Simplify TS alloc: split allocation
821 * Simplify TS alloc: split USF/UL allocation
822 * Move PDCH-related functions into separate files
823 * Simplify TS alloc: don't use PDCH for free TFI
824 * Simplify TS alloc: constify max dl slot func
825 * TBF: make network counters internal
826 * Simplify TS alloc: move slot assignment
827 * Simplify TS alloc: move slot check into functions
828
829 [ Pau Espin Pedrol ]
830 * Print error cause of pcu socket connect failure
831 * gprs_bssgp_pcu.cpp: Comment unused function parse_ra_cap
832
833 [ Stefan Sperling ]
834 * Make osmo-pcu wait for BTS to become available at start-up time.
835 * improve documentation of Encoding::write_paging_request()
836
837 [ Alexander Couzens ]
838 * pcuif_proto.h: fix whitespaces and indention
839 * pcuif_proto: add version 8 features
840
841 [ Philipp Maier ]
842 * cosmetic: remove runaway semicolon
843 * pcu_l1_if: add frame number to log output
844 * tbf: add frame number to log output
845
846 -- Pau Espin Pedrol <pespin@sysmocom.de> Thu, 03 May 2018 16:20:00 +0200
847
Harald Welted34ec1b2017-10-29 12:03:05 +0100848osmo-pcu (0.4.0) unstable; urgency=medium
849
850 [ Holger Hans Peter Freyther ]
851 * Initial release.
852
853 [ Max ]
854 * Use value string check from osmo-ci
855 * cosmetic: tighten direct-phy related code
856 * Support receiving SI13 from BTS
857 * Move gsmtap and accounting into separate function
858 * cosmetic: convert explicit warnings to fixme/todo
859 * Assert valid CS
860 * TBF-DL: extend index check for RLC block copy
861 * TS alloc: properly count UL slots
862 * cosmetic: reformat multislot classes table
863
864 [ Philipp Maier ]
865 * gb: allow only packets from a specific SGSN
866
867 [ Harald Welte ]
868 * tests: Don't use private version of log_info but global gprs_log_info
869 * Call osmo_init_logging() before static BTS constructor
870 * Forward GPRS SUSPEND REQ from BTS to SGSN using BSSGP
871 * Debian: Cosmetic changes to control file; add better Description
872 * Debian: print test results in case of failure + clean-up autotest
873 * Debian: migrate from DEB_BUILD_HARDENING to DEB_BUILD_MAINT_OPTIONS
874 * Debian: upgrade to debhelper 9 / Standards 3.9.8
875
876 -- Harald Welte <laforge@gnumonks.org> Sun, 29 Oct 2017 12:03:05 +0100
877
Maxd78adfb2017-08-24 13:53:25 +0200878osmo-pcu (0.3.0) UNRELEASED; urgency=medium
Holger Hans Peter Freyther97e48a32016-04-01 19:21:16 +0200879
880 * Initial release.
881
882 -- Holger Hans Peter Freyther <holger@moiji-mobile.com> Fri, 01 Apr 2016 18:59:00 +0200