-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDefaultVirtualStackSettings.cpp
More file actions
108 lines (88 loc) · 5.53 KB
/
DefaultVirtualStackSettings.cpp
File metadata and controls
108 lines (88 loc) · 5.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#include "DefaultVirtualStackSettings.h"
std::unique_ptr<VirtualStackSettings> DefaultVirtualStackSettings::Default(StackEnum defaultStack, bool isLocalhost, bool isRouter)
{
auto tmpStream = DefaultFactory(defaultStack, isLocalhost, isRouter).Build();
SettingsProvider tmpProvider;
tmpProvider.ReadSettings(*tmpStream);
return std::make_unique<VirtualStackSettings>(std::move(tmpProvider));
}
VirtualStackSettings DefaultVirtualStackSettings::Default2(StackEnum defaultStack, bool isLocalhost, bool isRouter)
{
auto tmpStream = DefaultFactory(defaultStack, isLocalhost, isRouter).Build();
SettingsProvider tmpProvider;
tmpProvider.ReadSettings(*tmpStream);
return VirtualStackSettings{std::move(tmpProvider)};
}
std::unique_ptr<VirtualStackSettings> DefaultVirtualStackSettings::Default(const SettingsStreamFactory &factory)
{
auto tmpStream = factory.Build();
SettingsProvider tmpProvider;
tmpProvider.ReadSettings(*tmpStream);
return std::make_unique<VirtualStackSettings>(std::move(tmpProvider));
}
SettingsStreamFactory DefaultVirtualStackSettings::DefaultFactory(StackEnum defaultStack, bool isLocalhost, bool isRouter)
{
auto tmpStreamFactory = SettingsStreamFactory::New();
tmpStreamFactory
.AddString("NorthboundDeviceName", "tunDevice")
.AddString("SouthboundInterfaces", "lo")
.AddSizeTVector("SouthboundInterfacesMTU", {1500})
.AddStringVector("SouthboundInterfaceIPv4Address", {"127.0.0.1"})
.AddUInt("DefaultInterface", 0)
.AddBool("IsLocalhost", isLocalhost)
.AddBool("IsRouter", isRouter)
.AddString("RouterOutStack", StackEnumHelper::toString(StackEnum::Invalid))
.AddStringVector("RoutingTable", {})
.AddUInt("ManagementPort", 3000)
.AddString("ManagementBindAddress", "0.0.0.0")
.AddString("ManagementInterface", "")
.AddStringVector("Stacks", {StackEnumHelper::toString(StackEnum::UDPIPv4),
StackEnumHelper::toString(StackEnum::UDPLITEIPv4),
StackEnumHelper::toString(StackEnum::UDPPlusIPv4),
StackEnumHelper::toString(StackEnum::UDPPlusNoFecIPv4),
StackEnumHelper::toString(StackEnum::UDPPlusNoFlowFecIPv4),
StackEnumHelper::toString(StackEnum::UDPPlusNoFlowIPv4),
StackEnumHelper::toString(StackEnum::UDPPlusOnlyFecIPv4),
StackEnumHelper::toString(StackEnum::UDPPlusOnlyFlowFecIPv4),
StackEnumHelper::toString(StackEnum::UDPPlusOnlyFlowIPv4),
StackEnumHelper::toString(StackEnum::SoftwareLoop),
StackEnumHelper::toString(StackEnum::SCTPIPv4),
StackEnumHelper::toString(StackEnum::DCCPIPv4),
StackEnumHelper::toString(StackEnum::TCPIPv4)})
.AddString("DefaultStack", StackEnumHelper::toString(defaultStack))
.AddString("TunDeviceName", "tun0")
.AddSizeT("StackEngineMaxStacksCount", 10)
.AddSizeT("WaitForStackCreationTimeoutMilliseconds", 20000)
.AddSizeT("SizeOfStackCreationBuffer", 1024)
.AddSizeT("SizeOfManagementSessionsBuffer", 128)
.AddSizeT("SizeOfManagementConfigurationsBuffer", 128)
.AddSizeT("SizeOfRemoteControlCommandsBuffer", 128)
.AddSizeT("SizeOfInspectionEventsBuffer", 128)
.AddSizeT("SizeOfNorthboundPoolBuffer", 256)
.AddSizeT("SizeOfFromNorthboundBuffer", 8)
.AddSizeT("SizeOfStackEngineSequenceNumberBuffer", 256)
.AddSizeT("SizeOfStackBuffer", 8)
.AddSizeT("SizeOfUdpSequenceNumberBuffer", 256)
.AddSizeT("SizeOfUdpPlusFecRestoreBuffer", 256)
.AddSizeT("SizeOfUdpPlusResendingBuffer", 512) //sendeseite
.AddSizeT("SizeOfUdpPlusInitialFlowWindowSize", 128)
.AddSizeT("SizeOfUdpPlusFecGroupSize", 8)
.AddSizeT("SizeOfUdpPlusControlFrameTimeThreshold", 100)
.AddSizeT("SizeOfUdpPlusControlFrameRecvThreshold", 128)
.AddSizeT("SizeOfUdpPlusControlFrameFlowWindowReserve", 2)
.AddSizeT("SizeOfKernelBuffer", 256)
.AddSizeT("SizeOfToNorthboundBuffer", 1024)
.AddSizeT("WeightedRoundRobinWeight", 4)
.AddString("NetworkMessageControllerUtilizationPlan", UtilizationPlanWrapper::toString(UtilizationPlan::High))
.AddString("SouthboundStackUtilizationPlan", UtilizationPlanWrapper::toString(UtilizationPlan::High))
.AddString("VirtualStackUtilizationPlan", UtilizationPlanWrapper::toString(UtilizationPlan::High))
.AddString("GenericStackUtilizationPlan", UtilizationPlanWrapper::toString(UtilizationPlan::High))
.AddString("UdpPlusUtilizationPlan", UtilizationPlanWrapper::toString(UtilizationPlan::High))
.AddString("StackEngineReceiveControllerUtilizationPlan", UtilizationPlanWrapper::toString(UtilizationPlan::High))
.AddSizeT("UtilizationPlanLowThreshold", 1ul << 60)
.AddSizeT("UtilizationPlanMidThreshold", 1ul << 60)
.AddSizeT("UtilizationPlanHighThreshold", 1ul << 60)
.AddSizeT("DebouncerSleepInNanoseconds", 10)
.AddSizeT("DefaultSchedulerIndex", 0);
return tmpStreamFactory;
}