* This function prepares Error PDU and sends it to a cache server.
*/
static int
-rpki_send_error_pdu(struct rpki_cache *cache, const enum pdu_error_type error_code, const u32 err_pdu_len, const struct pdu_header *erroneous_pdu, const char *fmt, ...)
+rpki_send_error_pdu(struct rpki_cache *cache, const enum pdu_error_type error_code, u32 err_pdu_len, const struct pdu_header *erroneous_pdu, const char *fmt, ...)
{
va_list args;
char msg[128];
va_end(args);
}
+ u32 err_pdu_max_len = ROUND_DOWN_POW2(RPKI_TX_BUFFER_SIZE - (16 + msg_len), 4);
+ err_pdu_len = MIN(err_pdu_len, err_pdu_max_len);
+
u32 pdu_size = 16 + err_pdu_len + msg_len;
byte pdu[pdu_size];
memset(pdu, 0, sizeof(pdu));
* ------------
* = 848 bytes (Maximal expected PDU size)
*
- * Received ASPA PDU can have any size, so let's start with 4k */
-#define RPKI_PDU_MAX_LEN 4096
+ * Received ASPA PDU can have any size, so let's start with 64k */
+#define RPKI_PDU_MAX_LEN 65536
/* RX buffer size has a great impact to scheduler granularity */
-#define RPKI_RX_BUFFER_SIZE 4096
-#define RPKI_TX_BUFFER_SIZE RPKI_PDU_MAX_LEN
+#define RPKI_RX_BUFFER_SIZE 65536
+#define RPKI_TX_BUFFER_SIZE 4096
/* Return values */
enum rpki_rtvals {