@@ -315,7 +315,6 @@ function flows_usage {
315315 echo " --enable_dns: enable DNS tracking (default: false)"
316316 echo " --enable_rtt: enable RTT tracking (default: false)"
317317 echo " --enable_network_events: enable Network events monitoring (default: false)"
318- echo " --enable_filter: enable flow filter (default: false)"
319318 # common
320319 common_usage
321320 # specific filters
@@ -349,6 +348,11 @@ function updateFLPConfig {
349348function edit_manifest() {
350349 # # replace the configuration in the manifest file
351350 echo " opt: $1 , evalue: $2 "
351+
352+ if [[ $1 == " filter_" * ]]; then
353+ " $YQ_BIN " e --inplace " .spec.template.spec.containers[0].env[] |= select(.name==\" ENABLE_FLOW_FILTER\" ).value|=\" true\" " " $3 "
354+ fi
355+
352356 case " $1 " in
353357 " interfaces" )
354358 " $YQ_BIN " e --inplace " .spec.template.spec.containers[0].env[] |= select(.name==\" INTERFACES\" ).value|=\" $2 \" " " $3 "
@@ -397,9 +401,6 @@ function edit_manifest() {
397401 fi
398402 fi
399403 ;;
400- " filter_enable" )
401- " $YQ_BIN " e --inplace " .spec.template.spec.containers[0].env[] |= select(.name==\" ENABLE_FLOW_FILTER\" ).value|=\" $2 \" " " $3 "
402- ;;
403404 " filter_direction" )
404405 " $YQ_BIN " e --inplace " .spec.template.spec.containers[0].env[] |= select(.name == \" FLOW_FILTER_RULES\" ).value |=(fromjson | map(.direction = \" $2 \" )| tostring)" " $3 "
405406 ;;
@@ -452,6 +453,10 @@ function edit_manifest() {
452453 " $YQ_BIN " e --inplace " .spec.template.spec.containers[0].env[] |= select(.name == \" FLOW_FILTER_RULES\" ).value |=(fromjson | map(.tcp_flags = \" $2 \" )| tostring)" " $3 "
453454 ;;
454455 " filter_pkt_drops" )
456+ if [[ " $2 " == " true" ]]; then
457+ # force enable drops before setting filter
458+ edit_manifest " pktdrop_enable" " $2 " " $3 "
459+ fi
455460 " $YQ_BIN " e --inplace " .spec.template.spec.containers[0].env[] |= select(.name == \" FLOW_FILTER_RULES\" ).value |=(fromjson | map(.drops = $2 )| tostring)" " $3 "
456461 ;;
457462 " filter_regexes" )
@@ -495,6 +500,18 @@ function edit_manifest() {
495500 esac
496501}
497502
503+
504+ # define key and value at script level to make them available all the time
505+ # these will be updated by check_args_and_apply first and overriden by defaultValue when needed
506+ key=" "
507+ value=" "
508+
509+ function defaultValue() {
510+ if [ " $key " == " $value " ]; then
511+ value=" $1 "
512+ fi
513+ }
514+
498515# Check if the arguments are valid
499516# $1: options
500517# $2: manifest
@@ -506,14 +523,15 @@ function check_args_and_apply() {
506523 value=" ${option#* =} "
507524 case " $key " in
508525 --background) # Run command in background
526+ defaultValue " true"
509527 if [[ " $value " == " true" || " $value " == " false" ]]; then
510- echo " param: $key , param_value: $value "
511528 runBackground=" $value "
512529 else
513530 echo " invalid value for --background"
514531 fi
515532 ;;
516533 --copy) # Copy or skip without prompt
534+ defaultValue " true"
517535 if [[ " $value " == " true" || " $value " == " false" || " $value " == " prompt" ]]; then
518536 copy=" $value "
519537 else
@@ -525,6 +543,7 @@ function check_args_and_apply() {
525543 ;;
526544 --enable_pktdrop) # Enable packet drop
527545 if [[ " $3 " == " flows" ]]; then
546+ defaultValue " true"
528547 if [[ " $value " == " true" || " $value " == " false" ]]; then
529548 edit_manifest " pktdrop_enable" " $value " " $2 "
530549 else
@@ -537,6 +556,7 @@ function check_args_and_apply() {
537556 ;;
538557 --enable_dns) # Enable DNS
539558 if [[ " $3 " == " flows" ]]; then
559+ defaultValue " true"
540560 if [[ " $value " == " true" || " $value " == " false" ]]; then
541561 edit_manifest " dns_enable" " $value " " $2 "
542562 else
@@ -549,6 +569,7 @@ function check_args_and_apply() {
549569 ;;
550570 --enable_rtt) # Enable RTT
551571 if [[ " $3 " == " flows" ]]; then
572+ defaultValue " true"
552573 if [[ " $value " == " true" || " $value " == " false" ]]; then
553574 edit_manifest " rtt_enable" " $value " " $2 "
554575 else
@@ -561,6 +582,7 @@ function check_args_and_apply() {
561582 ;;
562583 --enable_network_events) # Enable Network events monitoring
563584 if [[ " $3 " == " flows" ]]; then
585+ defaultValue " true"
564586 if [[ " $value " == " true" || " $value " == " false" ]]; then
565587 edit_manifest " network_events_enable" " $value " " $2 "
566588 else
@@ -571,18 +593,6 @@ function check_args_and_apply() {
571593 exit 1
572594 fi
573595 ;;
574- --enable_filter) # Enable flow filter
575- if [[ " $3 " == " flows" ]]; then
576- if [[ " $value " == " true" || " $value " == " false" ]]; then
577- edit_manifest " filter_enable" " $value " " $2 "
578- else
579- echo " invalid value for --enable_filter"
580- fi
581- else
582- echo " --enable_filter is invalid option for packets"
583- exit 1
584- fi
585- ;;
586596 --direction) # Configure filter direction
587597 if [[ " $value " == " Ingress" || " $value " == " Egress" ]]; then
588598 edit_manifest " filter_direction" " $value " " $2 "
@@ -635,6 +645,7 @@ function check_args_and_apply() {
635645 fi
636646 ;;
637647 --drops) # Filter packet drops
648+ defaultValue " true"
638649 if [[ " $value " == " true" || " $value " == " false" ]]; then
639650 edit_manifest " filter_pkt_drops" " $value " " $2 "
640651 else
@@ -692,6 +703,7 @@ function check_args_and_apply() {
692703 fi
693704 ;;
694705 --get-subnets) # Get subnets
706+ defaultValue " true"
695707 if [[ " $value " == " true" || " $value " == " false" ]]; then
696708 edit_manifest " get_subnets" " $value " " $2 "
697709 else
0 commit comments