1
// Copyright 2022-2023 The Inspektor Gadget authors
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
7
// http://www.apache.org/licenses/LICENSE-2.0
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
18
gadgetregistry "github.com/inspektor-gadget/inspektor-gadget/pkg/gadget-registry"
19
"github.com/inspektor-gadget/inspektor-gadget/pkg/gadgets"
20
"github.com/inspektor-gadget/inspektor-gadget/pkg/gadgets/trace/bind/types"
21
"github.com/inspektor-gadget/inspektor-gadget/pkg/params"
22
"github.com/inspektor-gadget/inspektor-gadget/pkg/parser"
28
ParamIgnoreErrors = "ignore-errors"
31
type GadgetDesc struct{}
33
func (g *GadgetDesc) Name() string {
37
func (g *GadgetDesc) Category() string {
38
return gadgets.CategoryTrace
41
func (g *GadgetDesc) Type() gadgets.GadgetType {
42
return gadgets.TypeTrace
45
func (g *GadgetDesc) Description() string {
46
return "Trace socket bindings"
49
func (g *GadgetDesc) ParamDescs() params.ParamDescs {
50
return params.ParamDescs{
55
Description: "Show only bind events generated by this particular PID",
56
TypeHint: params.TypeInt32,
62
Description: "Trace only bind events involving these ports",
63
Validator: params.ValidateSlice(params.ValidateUintRange(1, 65535)),
66
Key: ParamIgnoreErrors,
67
Title: "Ignore Errors",
70
Description: "Show only events where the bind succeeded",
71
TypeHint: params.TypeBool,
76
func (g *GadgetDesc) Parser() parser.Parser {
77
return parser.NewParser[types.Event](types.GetColumns())
80
func (g *GadgetDesc) EventPrototype() any {
85
gadgetregistry.Register(&GadgetDesc{})