@@ -989,7 +989,7 @@ _net_ebpf_extension_connection_context_initialize(
989989_Requires_exclusive_lock_held_ (_net_ebpf_ext_sock_addr_contexts .lock ) static uint32_t
990990 _net_ebpf_ext_find_and_remove_connection_context_locked (_In_ net_ebpf_extension_connection_context_t * context )
991991{
992- uint32_t verdict = BPF_SOCK_ADDR_VERDICT_PROCEED ;
992+ uint32_t verdict = BPF_SOCK_ADDR_VERDICT_PROCEED_SOFT ;
993993 // Check the hash table for the entry.
994994 net_ebpf_extension_connection_context_t * found_context =
995995 (net_ebpf_extension_connection_context_t * )RtlLookupElementGenericTableAvl (
@@ -1518,7 +1518,7 @@ _get_verdict_priority(uint32_t verdict)
15181518 return 3 ; // Highest priority
15191519 case BPF_SOCK_ADDR_VERDICT_PROCEED_HARD :
15201520 return 2 ;
1521- case BPF_SOCK_ADDR_VERDICT_PROCEED :
1521+ case BPF_SOCK_ADDR_VERDICT_PROCEED_SOFT :
15221522 return 1 ;
15231523 default :
15241524 return 0 ;
@@ -1631,7 +1631,7 @@ net_ebpf_extension_sock_addr_authorize_recv_accept_classify(
16311631 goto Exit ;
16321632 }
16331633
1634- classify_output -> actionType = (result == BPF_SOCK_ADDR_VERDICT_PROCEED ) ? FWP_ACTION_PERMIT : FWP_ACTION_BLOCK ;
1634+ classify_output -> actionType = (result == BPF_SOCK_ADDR_VERDICT_PROCEED_SOFT ) ? FWP_ACTION_PERMIT : FWP_ACTION_BLOCK ;
16351635 if (classify_output -> actionType == FWP_ACTION_BLOCK ) {
16361636 classify_output -> rights &= ~FWPS_RIGHT_ACTION_WRITE ;
16371637 }
@@ -1699,7 +1699,7 @@ net_ebpf_extension_sock_addr_authorize_connection_classify(
16991699 // This is a re-authorization of a connection that was previously authorized by the
17001700 // eBPF program. Permit it.
17011701 // NOTE: Reauthorization is currently not supported for hard permit.
1702- verdict = BPF_SOCK_ADDR_VERDICT_PROCEED ;
1702+ verdict = BPF_SOCK_ADDR_VERDICT_PROCEED_SOFT ;
17031703 goto Exit ;
17041704 }
17051705
@@ -1713,7 +1713,7 @@ net_ebpf_extension_sock_addr_authorize_connection_classify(
17131713 "The cgroup_sock_addr eBPF program is not interested in this compartment ID" ,
17141714 sock_addr_ctx -> compartment_id );
17151715
1716- verdict = BPF_SOCK_ADDR_VERDICT_PROCEED ;
1716+ verdict = BPF_SOCK_ADDR_VERDICT_PROCEED_SOFT ;
17171717 goto Exit ;
17181718 }
17191719
@@ -1724,7 +1724,7 @@ net_ebpf_extension_sock_addr_authorize_connection_classify(
17241724 // Set action type based on verdict
17251725 // Clear FWPS_RIGHT_ACTION_WRITE for block and hard permit.
17261726 switch (verdict ) {
1727- case BPF_SOCK_ADDR_VERDICT_PROCEED :
1727+ case BPF_SOCK_ADDR_VERDICT_PROCEED_SOFT :
17281728 classify_output -> actionType = FWP_ACTION_PERMIT ;
17291729 break ;
17301730 case BPF_SOCK_ADDR_VERDICT_PROCEED_HARD :
@@ -1914,7 +1914,7 @@ _cache_connection_context_verdict(
19141914 uint32_t verdict ,
19151915 uint64_t handle )
19161916{
1917- if (verdict != BPF_SOCK_ADDR_VERDICT_PROCEED ) {
1917+ if (verdict != BPF_SOCK_ADDR_VERDICT_PROCEED_SOFT ) {
19181918 // Create a connection context and add it to list for the AUTH_CONNECT layer callout to enforce the
19191919 // verdict of the program.
19201920 if (verdict == BPF_SOCK_ADDR_VERDICT_PROCEED_HARD ) {
@@ -2017,7 +2017,7 @@ net_ebpf_extension_sock_addr_redirect_connection_classify(
20172017 NET_EBPF_EXT_TRACELOG_LEVEL_VERBOSE ,
20182018 NET_EBPF_EXT_TRACELOG_KEYWORD_SOCK_ADDR ,
20192019 "No \"write\" right; exiting." );
2020- verdict = BPF_SOCK_ADDR_VERDICT_PROCEED ;
2020+ verdict = BPF_SOCK_ADDR_VERDICT_PROCEED_SOFT ;
20212021 goto Exit ;
20222022 }
20232023
@@ -2040,7 +2040,7 @@ net_ebpf_extension_sock_addr_redirect_connection_classify(
20402040 NET_EBPF_EXT_TRACELOG_KEYWORD_SOCK_ADDR ,
20412041 "net_ebpf_extension_sock_addr_redirect_connection_classify - Client detach detected." ,
20422042 STATUS_INVALID_PARAMETER );
2043- verdict = BPF_SOCK_ADDR_VERDICT_PROCEED ;
2043+ verdict = BPF_SOCK_ADDR_VERDICT_PROCEED_SOFT ;
20442044 goto Exit ;
20452045 }
20462046
@@ -2051,7 +2051,7 @@ net_ebpf_extension_sock_addr_redirect_connection_classify(
20512051 // In case of re-authorization, the eBPF programs have already inspected the connection.
20522052 // Skip invoking the program(s) again. In this case the verdict is always to proceed (terminating).
20532053 if (net_ebpf_sock_addr_ctx .flags & FWP_CONDITION_FLAG_IS_REAUTHORIZE ) {
2054- verdict = BPF_SOCK_ADDR_VERDICT_PROCEED ;
2054+ verdict = BPF_SOCK_ADDR_VERDICT_PROCEED_SOFT ;
20552055 reauthorization = TRUE;
20562056 NET_EBPF_EXT_LOG_MESSAGE_UINT64_UINT64 (
20572057 NET_EBPF_EXT_TRACELOG_LEVEL_ERROR ,
@@ -2071,7 +2071,7 @@ net_ebpf_extension_sock_addr_redirect_connection_classify(
20712071 NET_EBPF_EXT_TRACELOG_KEYWORD_SOCK_ADDR ,
20722072 "The cgroup_sock_addr eBPF program is not interested in this compartment ID." ,
20732073 sock_addr_ctx -> compartment_id );
2074- verdict = BPF_SOCK_ADDR_VERDICT_PROCEED ;
2074+ verdict = BPF_SOCK_ADDR_VERDICT_PROCEED_SOFT ;
20752075 goto Exit ;
20762076 }
20772077
@@ -2091,15 +2091,15 @@ net_ebpf_extension_sock_addr_redirect_connection_classify(
20912091 (uint64_t )sock_addr_ctx -> compartment_id );
20922092
20932093 // This connection was previously redirected.
2094- verdict = BPF_SOCK_ADDR_VERDICT_PROCEED ;
2094+ verdict = BPF_SOCK_ADDR_VERDICT_PROCEED_SOFT ;
20952095 goto Exit ;
20962096 }
20972097
20982098 v4_mapped = (sock_addr_ctx -> family == AF_INET6 ) && IN6_IS_ADDR_V4MAPPED ((IN6_ADDR * )sock_addr_ctx -> user_ip6 );
20992099
21002100 // Check if the eBPF program should be invoked based on the IP address family and the hook attach type.
21012101 if (!_net_ebpf_extension_sock_addr_should_invoke_ebpf_program (filter_context , sock_addr_ctx , v4_mapped )) {
2102- verdict = BPF_SOCK_ADDR_VERDICT_PROCEED ;
2102+ verdict = BPF_SOCK_ADDR_VERDICT_PROCEED_SOFT ;
21032103 goto Exit ;
21042104 }
21052105 net_ebpf_sock_addr_ctx .v4_mapped = v4_mapped ;
@@ -2141,7 +2141,7 @@ net_ebpf_extension_sock_addr_redirect_connection_classify(
21412141
21422142 if (result == EBPF_OBJECT_NOT_FOUND ) {
21432143 // No eBPF program is attached to this filter.
2144- verdict = BPF_SOCK_ADDR_VERDICT_PROCEED ;
2144+ verdict = BPF_SOCK_ADDR_VERDICT_PROCEED_SOFT ;
21452145 } else if (result != EBPF_SUCCESS ) {
21462146 // We failed to invoke at least one program in the chain, block the request.
21472147 verdict = BPF_SOCK_ADDR_VERDICT_REJECT ;
0 commit comments