Skip to content

Commit

Permalink
Merge pull request #17 from rtbrick/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
GIC-de authored Mar 9, 2021
2 parents e242b3d + 27d6383 commit 0a9652f
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 4 deletions.
9 changes: 7 additions & 2 deletions src/bbl_ctrl.c
Original file line number Diff line number Diff line change
Expand Up @@ -703,7 +703,7 @@ bbl_ctrl_li_flows(int fd, bbl_ctx_s *ctx, session_key_t *key __attribute__((unus
for (; dict_itor_valid(itor); dict_itor_next(itor)) {
li_flow = (bbl_li_flow_t*)*dict_itor_datum(itor);
if(li_flow) {
flow = json_pack("{ss si ss si ss ss ss si si si si si si si}",
flow = json_pack("{ss si ss si ss ss ss si si si si si si si si si si si si}",
"source-address", format_ipv4_address(&li_flow->src_ipv4),
"source-port", li_flow->src_port,
"destination-address", format_ipv4_address(&li_flow->dst_ipv4),
Expand All @@ -717,7 +717,12 @@ bbl_ctrl_li_flows(int fd, bbl_ctx_s *ctx, session_key_t *key __attribute__((unus
"packets-rx-ipv4", li_flow->packets_rx_ipv4,
"packets-rx-ipv4-tcp", li_flow->packets_rx_ipv4_tcp,
"packets-rx-ipv4-udp", li_flow->packets_rx_ipv4_udp,
"packets-rx-ipv4-host-internal", li_flow->packets_rx_ipv4_internal);
"packets-rx-ipv4-host-internal", li_flow->packets_rx_ipv4_internal,
"packets-rx-ipv6", li_flow->packets_rx_ipv6,
"packets-rx-ipv6-tcp", li_flow->packets_rx_ipv6_tcp,
"packets-rx-ipv6-udp", li_flow->packets_rx_ipv6_udp,
"packets-rx-ipv6-host-internal", li_flow->packets_rx_ipv6_internal,
"packets-rx-ipv6-no-next-header", li_flow->packets_rx_ipv6_no_next_header);
json_array_append(flows, flow);
}
}
Expand Down
26 changes: 24 additions & 2 deletions src/bbl_li.c
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ bbl_qmx_li_handler_rx(bbl_ethernet_header_t *eth, bbl_qmx_li_t *qmx_li, bbl_inte
bbl_ethernet_header_t *inner_eth;
bbl_pppoe_session_t *inner_pppoe;
bbl_ipv4_t *inner_ipv4 = NULL;
bbl_ipv6_t *inner_ipv6 = NULL;
bbl_li_flow_t *li_flow;

dict_insert_result result;
Expand Down Expand Up @@ -96,10 +97,13 @@ bbl_qmx_li_handler_rx(bbl_ethernet_header_t *eth, bbl_qmx_li_t *qmx_li, bbl_inte
inner_pppoe = (bbl_pppoe_session_t*)inner_eth->next;
if(inner_pppoe->protocol == PROTOCOL_IPV4) {
inner_ipv4 = (bbl_ipv4_t*)inner_pppoe->next;

}
} else if(inner_pppoe->protocol == PROTOCOL_IPV6) {
inner_ipv6 = (bbl_ipv6_t*)inner_pppoe->next;
}
} else if(inner_eth->type == ETH_TYPE_IPV4) {
inner_ipv4 = (bbl_ipv4_t*)eth->next;
} else if(inner_eth->type == PROTOCOL_IPV6) {
inner_ipv6 = (bbl_ipv6_t*)eth->next;
}

if(inner_ipv4) {
Expand All @@ -117,5 +121,23 @@ bbl_qmx_li_handler_rx(bbl_ethernet_header_t *eth, bbl_qmx_li_t *qmx_li, bbl_inte
default:
break;
}
} else if (inner_ipv6) {
li_flow->packets_rx_ipv6++;
switch(inner_ipv6->protocol) {
case IPV6_NEXT_HEADER_TCP:
li_flow->packets_rx_ipv6_tcp++;
break;
case IPV6_NEXT_HEADER_UDP:
li_flow->packets_rx_ipv6_udp++;
break;
case IPV6_NEXT_HEADER_INTERNAL:
li_flow->packets_rx_ipv6_internal++;
break;
case IPV6_NEXT_HEADER_NO:
li_flow->packets_rx_ipv6_no_next_header++;
break;
default:
break;
}
}
}
5 changes: 5 additions & 0 deletions src/bbl_li.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,11 @@ typedef struct bbl_li_flow_
uint64_t packets_rx_ipv4_tcp;
uint64_t packets_rx_ipv4_udp;
uint64_t packets_rx_ipv4_internal;
uint64_t packets_rx_ipv6;
uint64_t packets_rx_ipv6_tcp;
uint64_t packets_rx_ipv6_udp;
uint64_t packets_rx_ipv6_internal;
uint64_t packets_rx_ipv6_no_next_header;
} bbl_li_flow_t;

const char* bbl_li_direction_string(uint8_t direction);
Expand Down
3 changes: 3 additions & 0 deletions src/bbl_protocols.h
Original file line number Diff line number Diff line change
Expand Up @@ -139,8 +139,11 @@
#define UDP_PROTOCOL_L2TP 3
#define UDP_PROTOCOL_QMX_LI 4

#define IPV6_NEXT_HEADER_TCP 6
#define IPV6_NEXT_HEADER_UDP 17
#define IPV6_NEXT_HEADER_ICMPV6 58
#define IPV6_NEXT_HEADER_NO 59
#define IPV6_NEXT_HEADER_INTERNAL 61

#define ICMPV6_FLAGS_OTHER_CONFIG 0x40
#define ICMPV6_OPTION_PREFIX 3
Expand Down

0 comments on commit 0a9652f

Please sign in to comment.