github.com/cilium/cilium@v1.16.2/pkg/datapath/prefilter/cell.go (about)

     1  // SPDX-License-Identifier: Apache-2.0
     2  // Copyright Authors of Cilium
     3  
     4  package prefilter
     5  
     6  import (
     7  	"github.com/cilium/hive/cell"
     8  
     9  	"github.com/cilium/cilium/api/v1/server/restapi/prefilter"
    10  	datapath "github.com/cilium/cilium/pkg/datapath/types"
    11  )
    12  
    13  // Cell provides prefilter, a means of configuring XDP pre-filters for DDoS-mitigation.
    14  var Cell = cell.Module(
    15  	"prefilter",
    16  	"Provides a means of configuring XDP pre-filters for DDoS-mitigation",
    17  
    18  	cell.Provide(newPreFilter),
    19  	cell.Provide(newPrefilterApiHandler),
    20  )
    21  
    22  type prefilterApiHandlerOut struct {
    23  	cell.Out
    24  
    25  	GetPrefilterHandler    prefilter.GetPrefilterHandler
    26  	PatchPrefilterHandler  prefilter.PatchPrefilterHandler
    27  	DeletePrefilterHandler prefilter.DeletePrefilterHandler
    28  }
    29  
    30  func newPrefilterApiHandler(prefilter datapath.PreFilter) prefilterApiHandlerOut {
    31  	return prefilterApiHandlerOut{
    32  		GetPrefilterHandler:    &getPrefilterHandler{preFilter: prefilter},
    33  		PatchPrefilterHandler:  &patchPrefilterHandler{preFilter: prefilter},
    34  		DeletePrefilterHandler: &deletePrefilterHandler{preFilter: prefilter},
    35  	}
    36  }