Commit Graph

52 Commits

Author SHA1 Message Date
Heikki Hannikainen c11122c2b0 no_tx: Do not send packets to broken TX igates.
Blacklist an igate software implementation which does not use the 3rd party
packet format when forwarding packets from APRS-IS to RF.  It causes loops
and confuses all other igates around to think that all those stations on
APRS-IS are reachable locally on RF.
2023-01-27 19:03:27 +02:00
Heikki Hannikainen 8a410f9690 coverity: Fix format string bugs in logging
Mostly long integers printed with %d.
2022-11-01 23:35:57 +02:00
Heikki Hannikainen 46b6947f1e accounting: Optimize CPU use of tx/rx accounting counters
TX counters are updated much more often than RX counters. No need
to bump RX counters for every outgoing packet, and no need
to bump TX counters for every incoming packet. Split them out.
2022-10-31 19:04:01 +02:00
Heikki Hannikainen 9d260012e7 outgoing packets: account SCTP right 2013-04-26 18:14:15 +03:00
Heikki Hannikainen 2102cff229 worker: use a c->write() method to simplify different write handlers 2013-04-13 17:58:02 +03:00
Heikki Hannikainen ed37f32189 Classify clients only when they have logged in. Use classification
presence to determine if packets should be sent in outgoing.c, which
saves one more condition check for login status for every packet.
2013-02-01 07:33:04 +02:00
Heikki Hannikainen 6ac7098b5a Dupeclients: Prepend "dup\t" to outgoing dupe packets
in order to prevent regular clients from processing them.
2013-01-20 08:21:54 +02:00
Heikki Hannikainen 033d40288f worker: Only raise an alert about internal packet drops if more than
24 packets were dropped within 24 hours.
2013-01-16 14:20:45 +02:00
Heikki Hannikainen 438f5a5406 outgoing loops: Optimized some pointer references away in tight loops 2012-11-13 23:55:59 +02:00
Heikki Hannikainen d469631e7b status,outgoing: raise an error flag if packets are dropped in
outgoing packet path
2012-11-01 22:49:40 +02:00
Heikki Hannikainen 2e6fe52daf dupecheck/acconting/web: Count duplicate packets per client and listener 2012-10-29 20:34:25 +02:00
Heikki Hannikainen d839000ad7 outgoing: +comment 2012-10-12 07:08:55 +03:00
Heikki Hannikainen f5a4298292 outgoing/worker: Classify upstreams/peers in their own list 2012-10-12 02:49:52 +03:00
Heikki Hannikainen 9cb21af856 outgoing/worker: classify read-only clients to their own list 2012-10-12 02:33:46 +03:00
Heikki Hannikainen 18b7dc4320 worker/outgoing: Classify dupeclients in a separate list
so that we don't need to walk through all clients when looking
for dupeclients. Optimisation starting point: will classify
other types of clients in their own lists.
2012-10-12 02:22:07 +03:00
Heikki Hannikainen ed66310c8c outgoing: make the outgoing clients scan loop tighter 2012-10-12 01:39:46 +03:00
Heikki Hannikainen c17fd235a0 outgoing: reorder checks to do the more common ones first 2012-10-12 00:12:08 +03:00
Heikki Hannikainen cfda722aab outging: added source code comments 2012-09-21 01:49:04 +03:00
Heikki Hannikainen 7893cdcfb1 Collect dropped input packet reason code counters for clients,
listeners and protocols, and put the counter arrays in the status
JSON.


git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@858 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2012-09-15 07:56:29 +00:00
Heikki Hannikainen afefb09c53 outgoing: fix SEGV in logging of a fairly normal timekeeping oddity, and cut
some slack in the testing of the odd case.


git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@830 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2012-09-06 17:44:35 +00:00
Heikki Hannikainen 8dac08e58d outgoing: cut some slack in the "packet from future" check
git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@661 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2012-08-19 06:16:20 +00:00
Heikki Hannikainen 0c733563cd outgoing: catch pbufs marked as free, and abort() upon seeing one
git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@609 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2012-08-07 16:24:14 +00:00
Heikki Hannikainen 9a86f86c32 Extra tests and logging tuning to catch old packets
git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@607 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2012-08-07 07:26:57 +00:00
Heikki Hannikainen e95a5a164d outgoing: Tighter 5-second outgoing packet age limit
git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@588 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2012-08-04 08:45:22 +00:00
Heikki Hannikainen 27a3f3f64d version 0.2.10:
- increase pbuf expiration time from 10 seconds back to 10 minutes to
avoid dupecheck from running over worker outgoing processor's toes,
this just masks the real bug temporarily
- make dupecheck and worker outgoing processor catch old packets,
dupecheck just logs an error, but worker skips them instead of
transmitting (safeguard against any bugs in buffer management)
- removed a chunk of dead code from outgoing.c
- if the packet is sourced by a local login, but it is not coming
from that socket, mark it as a duplicate packet.


git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@573 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2012-08-02 11:56:12 +00:00
Heikki Hannikainen 4cbbc57970 make dupefeeds work
git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@550 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2012-07-31 05:47:56 +00:00
Heikki Hannikainen 1fd38feb99 Fixed UDP received packets accounting
git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@535 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2012-07-30 10:09:06 +00:00
Heikki Hannikainen 540a73f827 Fix tcp total tx bytes accounting to show the right value
git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@533 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2012-07-30 08:01:57 +00:00
Heikki Hannikainen 884b88640b Implemented working core peer UDP tx/rx. Max 16 peers, fixed with a #define.
git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@502 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2012-07-26 18:03:03 +00:00
Heikki Hannikainen c499c96954 Fixed bugs in outgoing packet selection
git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@500 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2012-07-25 22:03:31 +00:00
Heikki Hannikainen c0307992ef Working UDP core peer transmit support (receiving doesn't work yet).
Classify incoming packets as coming in from a downstream client,
or an upstream server/core peer. Use the bit to avoid passing data
between upstreams.


git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@496 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2012-07-25 20:04:43 +00:00
Heikki Hannikainen 1be93848c9 Some initial work towards UDP core peergroups
git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@495 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2012-07-25 06:02:32 +00:00
Heikki Hannikainen 726d6f71ed Use gcc atomic __sync_fetch_and_add operations to increment statistics counters.
Added client counters for rxqdrops (Q algorithm drops), and rxparsefails
(plain APRS-IS packet parsing fails). Put counters in JSON and web stats.
Put historydb stats counters in JSON too.


git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@451 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2012-06-13 19:32:45 +00:00
Heikki Hannikainen be455b4470 Rework client states a bit, add a few states.
Do send packets to RW upstream servers (it didn't before).
Status JSON: add upstream server modes to JSON.


git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@423 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2012-06-07 18:09:03 +00:00
Heikki Hannikainen 9cccedd6ed HTTP: Implement giving out static files to support AJAX based status view.
Login+Filter: Store the user's filter in a client struct variable, for the status view.
Accounting: Fix in/out packet counting to not include keepalive strings etc.
Status: Added pbuf cellmalloc stats. Added more client stats (accounting).
Cellmalloc: Report the amount of cells allocated.


git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@410 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2012-06-06 21:35:46 +00:00
Heikki Hannikainen ec67313248 + Almost completely implement messaging support for aprsc: keep
track of heard stations per client, and pass messages to them.
With tests. Expiration missing, and courtesy posits.


git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@365 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2012-05-29 21:12:59 +00:00
Heikki Hannikainen 7604632c2c = outgoing: added a bunch of commented out debug logs
git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@352 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2012-05-17 22:21:43 +00:00
Matti Aarnio ec21ccf539 revert 316, insert some commented inactive experimental code on outgoing.c
git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@317 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2009-09-13 21:36:40 +00:00
Heikki Hannikainen 72a175704b + BSD licensing
git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@297 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2009-03-10 17:40:06 +00:00
Matti Aarnio 01f5b9d3f7 uplink simulator separated from normal processing, cleaner controls
git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@224 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2008-03-22 15:15:00 +00:00
Matti Aarnio cd8c038f1f Link-feature flags on config/accept/uplink/client codes
git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@172 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2008-03-18 12:47:09 +00:00
Matti Aarnio 5cbf5a09cd all outgoing_*() functions into one file
git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@146 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2008-03-14 10:40:42 +00:00
Matti Aarnio 9097143ecb two system timers (new, tick), outgoing rearranged, global pbuf queue purger controls, care at client_write(), obuf buffering/direct flushing tresholding
git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@131 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2008-03-12 21:20:02 +00:00
Matti Aarnio 0984f2da11 uplink socket, presently read-only
git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@85 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2008-03-10 05:55:42 +00:00
Matti Aarnio 56dc622c05 More filters, initial dupe processing bits
git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@54 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2008-03-06 14:32:08 +00:00
Matti Aarnio 97aca52e1f more of packet classification codes
git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@38 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2008-03-02 08:46:18 +00:00
Matti Aarnio 5e375aec50 put copyright&license statements on every source file, move struct pbuf_t to be cell-arena allocation stuff.
git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@27 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2008-02-29 20:35:01 +00:00
Matti Aarnio b61cd9e21a More of client filter codes
git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@23 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2008-02-29 00:27:36 +00:00
Heikki Hannikainen 4f3a2a9d9f - unused variables
git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@17 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2008-02-28 18:09:44 +00:00
Matti Aarnio e0c6ff311a incoming/worker/outgoing integration with output filter
git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@11 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
2008-02-28 12:30:46 +00:00