This serves a plan for new features and fixes planned.
- testing testing testing and automation of major portion of software - get 99 coverage
the below list is based on the capture most commonly used calls to general algorithms / system calls / optimisations so that a project can be kickstarted quick without rewriting them again and again. Right now this only supports linux, but plans to support QNX as well for OS abstraction.
Right now testing is only done with in Travis with Linux, X86 architecture (mostly 64 bits) - free opensource tier.
-
supervisor service
- monitor and restart specific services with in the system
- dynamic monitoring register and unregister (protobuf)
- periodic update from each process via unix domain udp
- client application for monitoring and stats
-
CLI for EDGE OS services
- remote monitoring via a simple console
-
System export:
- cpu usage, memory and resource limits expose over a network socket to backend managemnt over protobuf
- diagnosis for each service
-
Config parser:
- XML configuration parsing
- ini configuraiton parsing
- json configuration parsing
-
Algorithms:
- Data structures:
- Circular Q
- Sliding Window
- timeout based Sliding window buffer manager, hash TBL and other ds
- circular doubly linked lists
- circular lists
- binary tree
- Data structures:
-
File systems
- support sync and async features when CPU in idling mode
- watching the files with inotify and notifying it to the corresponding registered callbak
- unix domain socket interface support for
LogSrv
- packet logger based on libpcap header format - for reduced memory foot print
- packet reader based on libpcap header format - for reduced memory foot print
-
Thread pools
- worker threads independent of the evtloop - thread scheduling
- make scheduling of work for each worker thread work!
-
Networking
- raw socket API - sender, and receiver, with ether_header, iphdr, udphdr, tcphdr, tuntap
- ipv6 support - send, recv, create, delete, name to ip
- extend network layer for all purposes - v6 support, raw socket and splices for large payload transmit and receive
- wireless ioctl and wireless 802.11 packet parsing and packing
- tools to perform arp poisoning (only for learning), arp poison detection
- reverse ARP API
-
Databases
- interface with SQL database
-
Bluetooth interface
- with HCI library
- bluetooth low energy component
-
performance profiler interface library
-
telemetry service
- send telemetry info
- realtime - cpu load, memory, bandwidth usage for each radio, network hardware (packets sent and received)
- non realtime
- send telemetry info
-
communications
- d-bus system bus interfacing
- shared memory based communication
- add ublox protocol support GPS
one last but important feature is to support C++ class interfaces to the library API.