Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 10a708c2 authored by Daniel T. Lee's avatar Daniel T. Lee Committed by Alexei Starovoitov
Browse files

tools: bpftool: add bash-completion for net attach/detach



This commit adds bash-completion for new "net attach/detach"
subcommand for attaching XDP program on interface.

Signed-off-by: default avatarDaniel T. Lee <danieltimlee@gmail.com>
Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent 37c7f863
Loading
Loading
Loading
Loading
+55 −10
Original line number Diff line number Diff line
@@ -201,6 +201,10 @@ _bpftool()
            _bpftool_get_prog_tags
            return 0
            ;;
        dev)
            _sysfs_get_netdevs
            return 0
            ;;
        file|pinned)
            _filedir
            return 0
@@ -399,10 +403,6 @@ _bpftool()
                            _filedir
                            return 0
                            ;;
                        dev)
                            _sysfs_get_netdevs
                            return 0
                            ;;
                        *)
                            COMPREPLY=( $( compgen -W "map" -- "$cur" ) )
                            _bpftool_once_attr 'type'
@@ -498,10 +498,6 @@ _bpftool()
                        key|value|flags|name|entries)
                            return 0
                            ;;
                        dev)
                            _sysfs_get_netdevs
                            return 0
                            ;;
                        *)
                            _bpftool_once_attr 'type'
                            _bpftool_once_attr 'key'
@@ -778,18 +774,67 @@ _bpftool()
            esac
            ;;
        net)
            local PROG_TYPE='id pinned tag'
            local ATTACH_TYPES='xdp xdpgeneric xdpdrv xdpoffload'
            case $command in
                show|list)
                    [[ $prev != "$command" ]] && return 0
                    COMPREPLY=( $( compgen -W 'dev' -- "$cur" ) )
                    return 0
                    ;;
                attach)
                    case $cword in
                        3)
                            COMPREPLY=( $( compgen -W "$ATTACH_TYPES" -- "$cur" ) )
                            return 0
                            ;;
                        4)
                            COMPREPLY=( $( compgen -W "$PROG_TYPE" -- "$cur" ) )
                            return 0
                            ;;
                        5)
                            case $prev in
                                id)
                                    _bpftool_get_prog_ids
                                    ;;
                                pinned)
                                    _filedir
                                    ;;
                            esac
                            return 0
                            ;;
                        6)
                            COMPREPLY=( $( compgen -W 'dev' -- "$cur" ) )
                            return 0
                            ;;
                        8)
                            _bpftool_once_attr 'overwrite'
                            return 0
                            ;;
                    esac
                    ;;
                detach)
                    case $cword in
                        3)
                            COMPREPLY=( $( compgen -W "$ATTACH_TYPES" -- "$cur" ) )
                            return 0
                            ;;
                        4)
                            COMPREPLY=( $( compgen -W 'dev' -- "$cur" ) )
                            return 0
                            ;;
                    esac
                    ;;
                *)
                    [[ $prev == $object ]] && \
                        COMPREPLY=( $( compgen -W 'help \
                            show list' -- "$cur" ) )
                            show list attach detach' -- "$cur" ) )
                    ;;
            esac
            ;;
        feature)
            case $command in
                probe)
                    [[ $prev == "dev" ]] && _sysfs_get_netdevs && return 0
                    [[ $prev == "prefix" ]] && return 0
                    if _bpftool_search_list 'macros'; then
                        COMPREPLY+=( $( compgen -W 'prefix' -- "$cur" ) )