0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2025-03-21 22:07:03 +00:00

RPKI: miscellaneous small changes

This commit is contained in:
Pavel Tvrdík 2015-12-22 16:53:42 +01:00
parent 03f7edbd83
commit 82804d6add
5 changed files with 14 additions and 36 deletions

View File

@ -444,7 +444,8 @@ rpki_log_packet(struct rpki_cache *cache, const void *pdu, const size_t len, con
DBG("\n"); DBG("\n");
} }
static int rtr_send_pdu(struct rpki_cache *cache, const void *pdu, const unsigned len) static int
rtr_send_pdu(struct rpki_cache *cache, const void *pdu, const unsigned len)
{ {
const struct rtr_socket *rtr_socket = cache->rtr_socket; const struct rtr_socket *rtr_socket = cache->rtr_socket;
struct rpki_proto *p = cache->p; struct rpki_proto *p = cache->p;
@ -601,7 +602,8 @@ rtr_check_receive_packet(struct rpki_cache *cache, void *pdu, const size_t len)
return RTR_ERROR; return RTR_ERROR;
} }
static int rtr_handle_error_pdu(struct rtr_socket *rtr_socket, const void *buf) static int
rtr_handle_error_pdu(struct rtr_socket *rtr_socket, const void *buf)
{ {
struct rpki_cache *cache = rtr_socket->cache; struct rpki_cache *cache = rtr_socket->cache;
struct rpki_proto *p = cache->p; struct rpki_proto *p = cache->p;
@ -771,26 +773,6 @@ rtr_update_pfx_table(struct rpki_cache *cache, const void *pdu)
} }
} }
/*
if (rtval == PFX_DUPLICATE_RECORD) {
CACHE_TRACE(D_EVENTS, cache, "Duplicate Announcement for record: %I/%u max %u as %u, received", pfxr.prefix, pfxr.min_len, pfxr.max_len, pfxr.asn);
rtr_send_error_pdu(cache, pdu, pdu_size, DUPLICATE_ANNOUNCEMENT , NULL, 0);
rtr_change_socket_state(rtr_socket, RTR_ERROR_FATAL);
return RTR_ERROR;
} else if (rtval == PFX_RECORD_NOT_FOUND) {
CACHE_TRACE(D_EVENTS, cache, "Withdrawal of unknown record");
rtr_send_error_pdu(cache, pdu, pdu_size, WITHDRAWAL_OF_UNKNOWN_RECORD, NULL, 0);
rtr_change_socket_state(rtr_socket, RTR_ERROR_FATAL);
return RTR_ERROR;
} else if (rtval == PFX_ERROR) {
const char *txt = "PFX_TABLE Error";
RPKI_DBG(cache, "%s", txt);
rtr_send_error_pdu(cache, pdu, pdu_size, INTERNAL_ERROR, txt, sizeof(txt));
rtr_change_socket_state(rtr_socket, RTR_ERROR_FATAL);
return RTR_ERROR;
}
*/
return RTR_SUCCESS; return RTR_SUCCESS;
} }
@ -816,7 +798,7 @@ rtr_handle_end_of_data_pdu(struct rpki_cache *cache, void *pdu)
if (eod_pdu->session_id != rtr_socket->session_id) if (eod_pdu->session_id != rtr_socket->session_id)
{ {
char txt[67]; char txt[67];
snprintf(txt, sizeof(txt),"Expected session_id: %u, received session_id. %u in EOD PDU",rtr_socket->session_id, eod_pdu->session_id); snprintf(txt, sizeof(txt),"Received session_id %u, but expected was session_id %u", eod_pdu->session_id, rtr_socket->session_id);
CACHE_TRACE(D_EVENTS, cache, "%s", txt); CACHE_TRACE(D_EVENTS, cache, "%s", txt);
rtr_send_error_pdu(cache, pdu, eod_pdu->len, CORRUPT_DATA, txt, strlen(txt) + 1); rtr_send_error_pdu(cache, pdu, eod_pdu->len, CORRUPT_DATA, txt, strlen(txt) + 1);
rtr_change_socket_state(rtr_socket, RTR_ERROR_FATAL); rtr_change_socket_state(rtr_socket, RTR_ERROR_FATAL);
@ -865,7 +847,7 @@ rpki_rx_packet(struct rpki_cache *cache, byte *pdu, uint len)
break; break;
case CACHE_RESPONSE: case CACHE_RESPONSE:
rtr_handle_cache_response_pdu(cache,pdu); rtr_handle_cache_response_pdu(cache, pdu);
break; break;
case IPV4_PREFIX: case IPV4_PREFIX:

View File

@ -264,7 +264,7 @@ rpki_free_cache(struct rpki_cache *cache)
mb_free(cache->rtr_socket->tr_socket); mb_free(cache->rtr_socket->tr_socket);
mb_free(cache->rtr_socket); mb_free(cache->rtr_socket);
/* timers */ /* Timers */
tm_stop(cache->retry_timer); tm_stop(cache->retry_timer);
tm_stop(cache->refresh_timer); tm_stop(cache->refresh_timer);
tm_stop(cache->expire_timer); tm_stop(cache->expire_timer);

View File

@ -13,21 +13,18 @@
#include "nest/bird.h" #include "nest/bird.h"
#include "nest/route.h" #include "nest/route.h"
#include "lib/socket.h" #include "lib/socket.h"
#include "lib/ip.h" #include "lib/ip.h"
#include "tcp_transport.h" #include "transport.h"
#include "ssh_transport.h"
#include "rtr.h" #include "rtr.h"
#include "packets.h" #include "packets.h"
#define RPKI_DEFAULT_PORT 8282 #define RPKI_DEFAULT_PORT 8282
#define RPKI_DEFAULT_SSH_PORT 22 #define RPKI_DEFAULT_SSH_PORT 22
#define RPKI_DEFAULT_RETRY_INTERVAL 10 #define RPKI_DEFAULT_RETRY_INTERVAL 30
#define RPKI_DEFAULT_REFRESH_INTERVAL 15 #define RPKI_DEFAULT_REFRESH_INTERVAL 600
#define RPKI_DEFAULT_EXPIRE_INTERVAL 30 #define RPKI_DEFAULT_EXPIRE_INTERVAL 1200
#define RPKI_DEFAULT_CACHE_PREFERENCE 1 /* The most important priority */ #define RPKI_DEFAULT_CACHE_PREFERENCE 1 /* The most important priority */
struct rpki_cache_ssh_cfg { struct rpki_cache_ssh_cfg {
@ -58,8 +55,7 @@ struct rpki_cache {
timer *retry_timer; /* Timer for Cache server */ timer *retry_timer; /* Timer for Cache server */
timer *refresh_timer; /* Timer for Cache server */ timer *refresh_timer; /* Timer for Cache server */
timer *expire_timer; /* Timer for Cache server */ timer *expire_timer; /* Timer for Cache server */
u8 state; /* RPKI_CACHE_STATE_* */ u8 roa_src; /* For purge ROAs learned only from this cache */
u8 roa_src; /* For kicking off all ROA learned from this cache */
}; };
struct rpki_cache_group { struct rpki_cache_group {

View File

@ -141,7 +141,7 @@ rtr_schedule_next_expire_check(struct rpki_cache *cache)
unsigned time_to_wait = MAX(((int)rtr_socket->expire_interval - (int)(now - rtr_socket->last_update)), 1); unsigned time_to_wait = MAX(((int)rtr_socket->expire_interval - (int)(now - rtr_socket->last_update)), 1);
CACHE_TRACE(D_EVENTS, cache, "Next ROA expiration check will be after %u seconds again", time_to_wait); CACHE_DBG(cache, "Next ROA expiration check will be after %u seconds again", time_to_wait);
tm_stop(cache->expire_timer); tm_stop(cache->expire_timer);
tm_start(cache->expire_timer, time_to_wait); tm_start(cache->expire_timer, time_to_wait);
} }

View File

@ -98,7 +98,7 @@ struct rtr_socket {
bird_clock_t last_update; bird_clock_t last_update;
unsigned int retry_interval; /* Use if the cache server is down */ unsigned int retry_interval; /* Use if the cache server is down */
unsigned int refresh_interval; unsigned int refresh_interval;
unsigned int expire_interval; /* After this period without successfull refresh will be ROAs discard */ unsigned int expire_interval; /* After this period from last refresh will be ROAs discard */
enum rtr_socket_state state; enum rtr_socket_state state;
uint32_t session_id; uint32_t session_id;
bool request_session_id; bool request_session_id;