<commit_before>#ifndef SSU_DATA_H__
#define SSU_DATA_H__

#include <inttypes.h>
#include <string.h>
#include <map>
#include <vector>
#include <set>
#include <memory>
#include <boost/asio.hpp>
#include "I2NPProtocol.h"
#include "Identity.h"
#include "RouterInfo.h"

namespace i2p
{
namespace transport
{

	const size_t SSU_MTU_V4 = 1484;
	const size_t SSU_MTU_V6 = 1472;
	const size_t IPV4_HEADER_SIZE = 20;
	const size_t IPV6_HEADER_SIZE = 40;	
	const size_t UDP_HEADER_SIZE = 8;
	const size_t SSU_V4_MAX_PACKET_SIZE = SSU_MTU_V4 - IPV4_HEADER_SIZE - UDP_HEADER_SIZE; // 1456
	const size_t SSU_V6_MAX_PACKET_SIZE = SSU_MTU_V6 - IPV6_HEADER_SIZE - UDP_HEADER_SIZE; // 1424
	const int RESEND_INTERVAL = 3; // in seconds
	const int MAX_NUM_RESENDS = 5;
	const int DECAY_INTERVAL = 20; // in seconds
	const int INCOMPLETE_MESSAGES_CLEANUP_TIMEOUT = 30; // in seconds
	const unsigned int MAX_NUM_RECEIVED_MESSAGES = 1000; // how many msgID we store for duplicates check
	const int MAX_OUTGOING_WINDOW_SIZE = 200; // how many unacked message we can store
	// data flags
	const uint8_t DATA_FLAG_EXTENDED_DATA_INCLUDED = 0x02;
	const uint8_t DATA_FLAG_WANT_REPLY = 0x04;
	const uint8_t DATA_FLAG_REQUEST_PREVIOUS_ACKS = 0x08;
	const uint8_t DATA_FLAG_EXPLICIT_CONGESTION_NOTIFICATION = 0x10;
	const uint8_t DATA_FLAG_ACK_BITFIELDS_INCLUDED = 0x40;<commit_msg>use smaller mtu for meshnet mode<commit_after>#ifndef SSU_DATA_H__
#define SSU_DATA_H__

#include <inttypes.h>
#include <string.h>
#include <map>
#include <vector>
#include <set>
#include <memory>
#include <boost/asio.hpp>
#include "I2NPProtocol.h"
#include "Identity.h"
#include "RouterInfo.h"

namespace i2p
{
namespace transport
{

	const size_t SSU_MTU_V4 = 1484;
	#ifdef MESHNET
	const size_t SSU_MTU_V6 = 1304;
	#else
	const size_t SSU_MTU_V6 = 1472;
	#endif
	const size_t IPV4_HEADER_SIZE = 20;
	const size_t IPV6_HEADER_SIZE = 40;	
	const size_t UDP_HEADER_SIZE = 8;
	const size_t SSU_V4_MAX_PACKET_SIZE = SSU_MTU_V4 - IPV4_HEADER_SIZE - UDP_HEADER_SIZE; // 1456
	const size_t SSU_V6_MAX_PACKET_SIZE = SSU_MTU_V6 - IPV6_HEADER_SIZE - UDP_HEADER_SIZE; // 1424
	const int RESEND_INTERVAL = 3; // in seconds
	const int MAX_NUM_RESENDS = 5;
	const int DECAY_INTERVAL = 20; // in seconds
	const int INCOMPLETE_MESSAGES_CLEANUP_TIMEOUT = 30; // in seconds
	const unsigned int MAX_NUM_RECEIVED_MESSAGES = 1000; // how many msgID we store for duplicates check
	const int MAX_OUTGOING_WINDOW_SIZE = 200; // how many unacked message we can store
	// data flags
	const uint8_t DATA_FLAG_EXTENDED_DATA_INCLUDED = 0x02;
	const uint8_t DATA_FLAG_WANT_REPLY = 0x04;
	const uint8_t DATA_FLAG_REQUEST_PREVIOUS_ACKS = 0x08;
	const uint8_t DATA_FLAG_EXPLICIT_CONGESTION_NOTIFICATION = 0x10;
	const uint8_t DATA_FLAG_ACK_BITFIELDS_INCLUDED = 0x40;
{'fraction_non_alphanumeric': 0.07355579476139218, 'fraction_numerical': 0.04915679942590599, 'mean_word_length': 5.321995464852607, 'pattern_counts': {'":': 0, '<': 17, '<?xml version=': 0, '>': 17, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6141555', 'n_tokens_mistral': 1235, 'n_tokens_neox': 1135, 'n_words': 272}