Jeremy Lakeman
880117f6db
Reduce peak bandwidth usage (though we really need a dynamic limit)
2014-03-01 05:28:54 +10:30
Jeremy Lakeman
b8971e51f4
Refactor socket helper functions to take socket_address struct
2014-02-20 14:44:38 +10:30
Jeremy Lakeman
04955f1ddd
Fix interface name comparison for detecting real interfaces
2014-01-20 16:01:29 +10:30
Jeremy Lakeman
4bb3336b33
Generalise method for defining multiple interfaces
2014-01-09 15:01:38 +10:30
Jeremy Lakeman
60a2aaa547
Ensure only interfaces that are UP are closed
2014-01-09 15:01:38 +10:30
Jeremy Lakeman
506518ad06
Allow interfaces to use local unix addresses
...
- broadcast packets are sent to all sockets in the same folder
- switched most tests to use local sockets
2014-01-09 15:01:38 +10:30
Jeremy Lakeman
5f2c6e364a
Refactor interface addresses to use new socket_address struct
2014-01-09 15:01:38 +10:30
Andrew Bettison
ebc3133f5c
Change overlay_buffer fields from int to size_t
...
Fixes many -Wsign-compare warnings
2013-12-10 17:03:30 +10:30
Andrew Bettison
5d741361ea
Fix -Wsign-compare warnings: make loop counters unsigned
2013-12-10 16:21:23 +10:30
Andrew Bettison
f79e6f703a
Fix WHYF_perror() format string error
2013-12-10 10:38:03 +10:30
Andrew Bettison
30b2059608
Fix -Wunused-parameter warnings
...
New UNUSED(param) macro suppresses the warning for a specific parameter
In some cases, removed the unused parameters. In others, used the
parameter in a DEBUGF() or assert() statement to document the intent.
2013-12-09 18:22:18 +10:30
Andrew Bettison
8db5f9c14a
Merge branch 'anyservice' into 'development'
...
Allows any valid "service" manifest field in the "rhizome add file"
command
Many improvements in Rhizome manifest parsing; stricter manifest syntax
rules (no comment or blank lines, field names must be alphanumeric
identifiers), faster preliminary manifest inspection when receiving
manifest advertisements or syncing manifests
The 'development' branch introduces "struct socket_address" which
coincidentally fixed the recently encountered Linux kernel 3.12
recvmsg(2) EINVAL problem, so that 'rhizomeprotocol' tests which fail on
the 'anyservice' branch will pass after this merge
2013-12-01 05:44:01 +10:30
Andrew Bettison
72482b3427
Better error logging for recvwithttl()
2013-12-01 05:13:33 +10:30
Andrew Bettison
dafa1fc186
Improve struct socket_address
...
Add struct sockaddr_in 'inet' union field, rename 'addr_un' union field
to 'local'
Replace recvwithttl()'s (struct sockaddr *) and socklen_t pair of args
with single (struct socket_address *) arg
2013-11-29 12:56:59 +10:30
Jeremy Lakeman
d45470ce81
Refactor radio link for better encapsulation
2013-11-27 13:13:08 +10:30
Jeremy Lakeman
cd639ba3b6
Use constants instead of magic numbers
2013-11-27 13:12:25 +10:30
Jeremy Lakeman
ad33264834
Rename mavlink to radio_link
...
- split link state from slip structures and encapsulate it completely
- allocate interface specific buffers on demand
2013-11-27 13:09:26 +10:30
Andrew Bettison
fb39dd84ef
Improve dummy file Read/Write debug logging
2013-11-26 15:33:54 +10:30
Andrew Bettison
45450386db
Improve sendto(2) failure diagnostics
...
In MDP client and server MDP overlay code
2013-11-22 13:12:29 +10:30
Andrew Bettison
3805650736
Use ssize_t for sendto(2) return value, not int
...
Also improve error checking on ssize_t values (use ==-1 not <0) test
and cast ssize_t to size_t for comparisons
2013-11-22 11:55:09 +10:30
Andrew Bettison
e92e7cb65e
Improve sendto(2) error log messages
2013-11-22 11:55:09 +10:30
Andrew Bettison
ba0ab14c69
Clean up inclusion of <netinet/in.h>
...
Make all #include <netinet/in.h> conditional upon HAVE_NETINET_IN_H
Remove unnecessary #include <netinet/in.h> from source files
Reformat include block in "serval.h" for readability
2013-11-12 11:39:06 +10:30
Jeremy Lakeman
60e3f5a3fc
Fix printf formats for 64bit compilation
2013-10-09 10:31:52 +10:30
Andrew Bettison
c9f9025581
Fix intermittent 'routing' test failures
...
Caused by tests running so slowly that nodes become unreachable due to
timeout before the assertion of reachability is made. The timeout was
hard coded at five times the tick interval (2.5 seconds).
Introduced new config options: mdp.iftype.*.reachable_timeout_ms and
interface.*.mdp.reachable_timeout_ms to allow the timeout to be
configured. Configure the timeout to 60 seconds in 'routing' tests.
Changed the config schema to move options interfaces.*.mdp_tick_ms and
interfaces.*.packet_interval into interfaces.*.mdp.tick_ms and
interfaces.*.mdp.packet_interval (introduced new sub-struct 'mdp').
2013-10-08 16:36:07 +10:30
Andrew Bettison
9ba08e465f
Issue #11 : use socklen_t instead of int where appropriate
...
Also check for valid recvaddrlen before processing a received MDP packet.
2013-10-08 14:11:00 +10:30
Andrew Bettison
ffafae86b1
Issue #11 : replace long long with int64_t
2013-10-07 05:54:46 +10:30
Jeremy Lakeman
08b44e96ed
Improve html debug statistics
...
- shift radio rssi onto interace structure
- track packets sent received
- create html output for interface stats
- create html output for link state routing stats
2013-09-23 11:31:38 +09:30
Jeremy Lakeman
e3a5e8c353
Use heartbeat packets to control serial buffering
...
- Improve simulation of fakeradio
- Backtrack on partial RS errors in case of truncation / heartbeat insertion
2013-09-20 14:41:50 +09:30
Jeremy Lakeman
4b9817218d
Improve mavlink packet synchronisation
...
- backtrack when decoding fails
- assume locally built heartbeats may split a valid remote packet
2013-09-20 14:41:50 +09:30
Jeremy Lakeman
f7bffbfabe
Simplify packet debug logging
2013-09-20 14:41:50 +09:30
Jeremy Lakeman
56d3609a3f
Reduce frequency of mavlink heartbeat messages
2013-09-20 14:41:50 +09:30
Jeremy Lakeman
c13c7799f6
Send mavlink heartbeat every second
2013-09-13 14:37:33 +09:30
Jeremy Lakeman
3f123e1875
Send the next packet via stream interface ASAP
2013-09-12 16:14:01 +09:30
Jeremy Lakeman
6f26594447
Simplify mavlink link frame creation
...
- build one frame at a time directly from the prepared overlay buffer
2013-09-11 17:15:43 +09:30
Jeremy Lakeman
9d7e37cc5e
Pass ownership of final packet buffer to broadcast_ensemble
2013-09-11 11:13:33 +09:30
gardners
fa157500b3
Add debug output for mavlink sent and received frames.
...
debug.interactive_io can be used to pause after sending or receiving a packet.
2013-09-10 15:14:23 +09:30
gardners
f02e55c443
add 32bit crc to mavlink frames, and reject those that fail.
2013-09-10 14:53:12 +09:30
gardners
7248e01567
Implement flow of mavlink packets over serial connections
...
Replaces upper-7 bit slip encoding
Solves reliability of reading radio status messages
2013-09-10 13:07:52 +09:30
gardners
0cbebedc77
Add tx throttling for packet radios
...
avoids missing data due to lack of flow control.
2013-09-10 11:53:38 +09:30
Jeremy Lakeman
3be2ed615d
Resurrect packet visualisation
2013-09-02 14:55:02 +09:30
Jeremy Lakeman
e3b616421f
Remember outgoing links
2013-08-30 17:38:29 +09:30
Jeremy Lakeman
842915f70c
Fix, using wrong loop variable in interface detection
2013-08-29 17:22:59 +09:30
Jeremy Lakeman
95831a51aa
Don't schedule another poll if the interface is down
2013-08-28 17:06:42 +09:30
Jeremy Lakeman
7a4b1c3f19
Don't destroy the interface destination when bringing it down
2013-08-28 16:48:55 +09:30
Jeremy Lakeman
d2a88b8b2d
Bring the interface down if sending broadcast packets fails for any reason
2013-08-28 16:25:05 +09:30
Andrew Bettison
1b26917f58
Fix bug in handling errno from lseek()
2013-08-26 17:39:07 +09:30
Jeremy Lakeman
56cea7472a
Fix leak on interface down
2013-08-15 16:31:26 +09:30
Jeremy Lakeman
36b0fe51ae
Fix ping via directory service test
2013-08-13 10:55:48 +09:30
Jeremy Lakeman
a516af616e
Improve reliability
...
- don't drop packets that haven't been resolved yet on incoming acks
- statistically drop unicast packets during tests
2013-08-12 16:38:37 +09:30
Jeremy Lakeman
81afc42d8b
Major refactor to packet queuing and delivery in preparation for unicast link tracking.
...
Unicast tests broken
2013-08-09 09:37:08 +09:30