<commit_before>Development Plan
================

## Milestone 1
Have a fake gateway able to mock the behavior of a physical gateway. This will be used
mainly for testing and ensuring the correctness of other components.

- [ ] Fake gateway
    - [x] Types, packages and data structures in use
    - [x] Emit udp packets towards a server
    - [x] Handle behavior described by the semtech protocol
    - [x] Serialize json rxpk/stat object(s) 
    - [x] Generate json rxpl/stat object(s)
    - [x] Update gateway statistics accordingly
    - [ ] Load config from file or ENV
    - [ ] Generate valid fake end-device packet
    - [ ] Simulate fake end-devices traffic
    - [ ] Complete tests set for stats functions
    - [ ] Implements UDP ReadWriteCloser 
    - [ ] Move existing fake ReadWriteCloser to a proper file with handy constructor


## Milestone 2
Handle an uplink process that can forward packet coming from a gateway to a simple end-server
(fake handler). We handle no MAC commands and we does not care about registration yet. The
system will just forward messages using pre-configured end-device addresses.<commit_msg>[simulators.gateway] Update development plan<commit_after>Development Plan
================

## Milestone 1
Have a fake gateway able to mock the behavior of a physical gateway. This will be used
mainly for testing and ensuring the correctness of other components.

- [ ] Fake gateway
    - [x] Types, packages and data structures in use
    - [x] Emit udp packets towards a server
    - [x] Handle behavior described by the semtech protocol
    - [x] Serialize json rxpk/stat object(s) 
    - [x] Generate json rxpl/stat object(s)
    - [x] Update gateway statistics accordingly
    - [x] Generate valid fake end-device packet
    - [ ] Simulate fake end-devices traffic
    - [ ] Complete tests set for stats functions
    - [ ] Implements UDP ReadWriteCloser 
    - [ ] Move existing fake ReadWriteCloser to a proper file with handy constructor


## Milestone 2
Handle an uplink process that can forward packet coming from a gateway to a simple end-server
(fake handler). We handle no MAC commands and we does not care about registration yet. The
system will just forward messages using pre-configured end-device addresses.
{'fraction_non_alphanumeric': 0.07174490699734277, 'fraction_numerical': 0.001771479185119575, 'mean_word_length': 3.482142857142857, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1413322', 'n_tokens_mistral': 597, 'n_tokens_neox': 562, 'n_words': 295}