1919#include < pluginFactory.hpp>
2020#include < fieldSchema.hpp>
2121#include < fieldManager.hpp>
22+ #include < tcpData.hpp>
2223
2324namespace ipxp {
2425
@@ -97,31 +98,32 @@ PluginInitResult BasicPlusPlugin::onInit(const FlowContext& flowContext, void* p
9798{
9899 auto * pluginData = std::construct_at (reinterpret_cast <BasicPlusData*>(pluginContext));
99100
100- pluginData->ipTTL [Direction::Forward] = flowContext.packet .ipTTL ;
101+ pluginData->ipTTL [Direction::Forward] = flowContext.packet .ip_ttl ;
101102 m_fieldHandlers[BasicPlusFields::IP_TTL].setAsAvailable (flowContext.flowRecord );
102103
103- pluginData->ipFlag [Direction::Forward] = flowContext.packet .ipFlags ;
104+ pluginData->ipFlag [Direction::Forward] = flowContext.packet .ip_flags ;
104105 m_fieldHandlers[BasicPlusFields::IP_FLG].setAsAvailable (flowContext.flowRecord );
105106
106- if (!flowContext.packet .tcpData .has_value ()) {
107+ constexpr std::size_t TCP = 6 ;
108+ if (flowContext.packet .ip_proto != TCP) {
107109 return {
108110 .constructionState = ConstructionState::Constructed,
109111 .updateRequirement = UpdateRequirement::RequiresUpdate,
110112 .flowAction = FlowAction::NoAction,
111113 };
112114 }
113115
114- pluginData->tcpWindow [Direction::Forward] = flowContext.packet .tcpData -> window ;
116+ pluginData->tcpWindow [Direction::Forward] = flowContext.packet .tcp_window ;
115117 m_fieldHandlers[BasicPlusFields::TCP_WIN].setAsAvailable (flowContext.flowRecord );
116118
117- pluginData->tcpOption [Direction::Forward] = flowContext.packet .tcpData -> options ;
119+ pluginData->tcpOption [Direction::Forward] = flowContext.packet .tcp_options ;
118120 m_fieldHandlers[BasicPlusFields::TCP_OPT].setAsAvailable (flowContext.flowRecord );
119121
120- pluginData->tcpMSS [Direction::Forward] = flowContext.packet .tcpData -> mss ;
122+ pluginData->tcpMSS [Direction::Forward] = flowContext.packet .tcp_mss ;
121123 m_fieldHandlers[BasicPlusFields::TCP_MSS].setAsAvailable (flowContext.flowRecord );
122124
123- if (flowContext.packet .tcpData -> flags .bitfields .synchronize ) { // check if SYN packet
124- pluginData->tcpSynSize = flowContext.packet .ipLength ;
125+ if (TCPFlags ( flowContext.packet .tcp_flags ) .bitfields .synchronize ) { // check if SYN packet
126+ pluginData->tcpSynSize = flowContext.packet .ip_len ;
125127 m_fieldHandlers[BasicPlusFields::TCP_SYN_SIZE].setAsAvailable (flowContext.flowRecord );
126128 }
127129
@@ -136,38 +138,39 @@ PluginUpdateResult BasicPlusPlugin::onUpdate(const FlowContext& flowContext, voi
136138{
137139 auto * pluginData = reinterpret_cast <BasicPlusData*>(pluginContext);
138140
139- pluginData->ipTTL [flowContext.packet .direction ]
140- = std::min (pluginData->ipTTL [flowContext.packet .direction ], flowContext.packet .ipTTL );
141+ pluginData->ipTTL [flowContext.packet .source_pkt ]
142+ = std::min (pluginData->ipTTL [flowContext.packet .source_pkt ], flowContext.packet .ip_ttl );
141143
142- if (!flowContext.packet .tcpData .has_value ()) {
144+ constexpr std::size_t TCP = 6 ;
145+ if (flowContext.packet .ip_proto != TCP) {
143146 return {
144147 .updateRequirement = UpdateRequirement::RequiresUpdate,
145148 .flowAction = FlowAction::NoAction,
146149 };
147150 }
148151
149- pluginData->tcpOption [flowContext.packet .direction ] |= flowContext.packet .tcpData -> options ;
152+ pluginData->tcpOption [flowContext.packet .source_pkt ] |= flowContext.packet .tcp_options ;
150153
151- if (flowContext.packet .direction == Direction::Forward) {
154+ if (flowContext.packet .source_pkt == Direction::Forward) {
152155 return {
153156 .updateRequirement = UpdateRequirement::RequiresUpdate,
154157 .flowAction = FlowAction::NoAction,
155158 };
156159 }
157160
158- pluginData->ipTTL [Direction::Reverse] = flowContext.packet .ipTTL ;
161+ pluginData->ipTTL [Direction::Reverse] = flowContext.packet .ip_ttl ;
159162 m_fieldHandlers[BasicPlusFields::IP_TTL_REV].setAsAvailable (flowContext.flowRecord );
160163
161- pluginData->ipFlag [Direction::Reverse] = flowContext.packet .ipFlags ;
164+ pluginData->ipFlag [Direction::Reverse] = flowContext.packet .ip_flags ;
162165 m_fieldHandlers[BasicPlusFields::IP_FLG_REV].setAsAvailable (flowContext.flowRecord );
163166
164- pluginData->tcpWindow [Direction::Reverse] = flowContext.packet .tcpData -> window ;
167+ pluginData->tcpWindow [Direction::Reverse] = flowContext.packet .tcp_window ;
165168 m_fieldHandlers[BasicPlusFields::TCP_WIN_REV].setAsAvailable (flowContext.flowRecord );
166169
167- pluginData->tcpOption [Direction::Reverse] = flowContext.packet .tcpData -> options ;
170+ pluginData->tcpOption [Direction::Reverse] = flowContext.packet .tcp_options ;
168171 m_fieldHandlers[BasicPlusFields::TCP_OPT_REV].setAsAvailable (flowContext.flowRecord );
169172
170- pluginData->tcpMSS [Direction::Reverse] = flowContext.packet .tcpData -> mss ;
173+ pluginData->tcpMSS [Direction::Reverse] = flowContext.packet .tcp_mss ;
171174 m_fieldHandlers[BasicPlusFields::TCP_MSS_REV].setAsAvailable (flowContext.flowRecord );
172175
173176 return {
@@ -181,11 +184,6 @@ void BasicPlusPlugin::onDestroy(void* pluginContext)
181184 std::destroy_at (reinterpret_cast <BasicPlusData*>(pluginContext));
182185}
183186
184- std::string BasicPlusPlugin::getName () const noexcept
185- {
186- return basicPlusPluginManifest.name ;
187- }
188-
189187PluginDataMemoryLayout BasicPlusPlugin::getDataMemoryLayout () const noexcept
190188{
191189 return {
0 commit comments