Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

net/core/filter.c bpf_ipv6_fib_lookup() -> fib6_select_path()

Type Parameter Key Value
PARAM_VALUE 0 net 4096-ptr_max
PARAM_VALUE 0 net->user_ns 4096-ptr_max
PARAM_VALUE 1 res 6489984386563125248
PARAM_VALUE 1 res->f6i 4096-ptr_max
PARAM_VALUE 1 res->fib6_type 1
PARAM_VALUE 1 res->rt6 0
PARAM_VALUE 2 fl6 7057109324066013184
PARAM_VALUE 2 fl6->__fl_common.flowic_flags 0
PARAM_VALUE 2 fl6->mp_hash 0
PARAM_VALUE 5 skb 0
PARAM_VALUE 6 strict 0,4
PARAM_VALUE 6 strict->u.ip6.mp_hash 0-4294967295
CAPPED_DATA 3 oif 1
DATA_SOURCE 0 net $0
FUZZY_MAX 6 strict 4
BIT_INFO 6 strict 0x0,0x4
HARD_MAX 6 strict 4
NOCHECK_CALL
UNITS 0 net unit_byte
UNITS 3 oif unit_array_size

net/ipv6/route.c ip6_nh_lookup_table() -> fib6_select_path()

Type Parameter Key Value
PARAM_VALUE 0 net 4096-ptr_max
PARAM_VALUE 1 res 168347169887920128,7594205183180591104
PARAM_VALUE 1 res->f6i 4096-ptr_max
PARAM_VALUE 1 res->nh->nh_common.nhc_family 0,2,10
PARAM_VALUE 1 res->nh->nh_common.nhc_gw_family 0,2,10
PARAM_VALUE 1 res->rt6 0
PARAM_VALUE 2 fl6 5010118551655186432
PARAM_VALUE 2 fl6->__fl_common.flowic_flags 0
PARAM_VALUE 2 fl6->__fl_common.flowic_proto 0
PARAM_VALUE 2 fl6->flowlabel 0
PARAM_VALUE 2 fl6->mp_hash 0
PARAM_VALUE 2 fl6->uli.ports.dport 0
PARAM_VALUE 2 fl6->uli.ports.sport 0
PARAM_VALUE 5 skb 0
PARAM_VALUE 6 strict 64-65,68-69
CAPPED_DATA 3 oif 1
DATA_SOURCE 0 net $0
DATA_SOURCE 1 res $5
DATA_SOURCE 6 strict $4 [m]
PARAM_COMPARE 0 net->ipv6.fib6_null_entry != $1->f6i
BIT_INFO 6 strict 0x40,0x45
NOSPEC 2 fl6->__fl_common.flowic_oif
NOSPEC 3 oif
NOSPEC 3 oif
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 2 fl6->__fl_common.flowic_oif s32min-(-1),1-s32max[c]
USER_DATA 3 oif s32min-(-1),1-s32max[c]
USER_DATA 4 have_oif_match 1[c]
UNITS 0 net unit_byte
UNITS 3 oif unit_array_size
LOCK2 rcu_read
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 0 &net->rtnl_mutex

net/ipv6/route.c ip6_pol_route() -> fib6_select_path()

Type Parameter Key Value
PARAM_VALUE 0 net 4096-ptr_max
PARAM_VALUE 0 net->ipv4.fqdir->f->frag_expire 0,663510801442193408,1753052602134376448,4007388366431105024,8876081723503042560
PARAM_VALUE 0 net->ipv4.fqdir->f->qsize 0,304,320
PARAM_VALUE 0 net->loopback_dev->rtnl_link_ops->maxtype 0-6,8-10,15,18,20,22,24,34,50
PARAM_VALUE 1 res 6795172478755725312
PARAM_VALUE 1 res->f6i 4096-ptr_max
PARAM_VALUE 1 res->rt6 0
PARAM_VALUE 2 fl6 4096-ptr_max
PARAM_VALUE 5 skb->dev->nd_net.net->ipv4.fqdir->f->frag_expire 0,663510801442193408,1753052602134376448,4007388366431105024,8876081723503042560
PARAM_VALUE 5 skb->dev->nd_net.net->ipv4.fqdir->f->qsize 0,304,320
PARAM_VALUE 5 skb->dev->ndisc_ops->fill_addr_option 4096-ptr_max
PARAM_VALUE 5 skb->dev->ndisc_ops->parse_options 4096-ptr_max
PARAM_VALUE 5 skb->dev->ndisc_ops->update 4096-ptr_max
PARAM_VALUE 5 skb->dev->rtnl_link_ops->maxtype 0-6,8-10,15,18,20,22,24,34,50
PARAM_VALUE 5 skb->dev->rtnl_link_ops->priv_size 0,8,32,40,48,56,88,112,120,144,160,224,240,256,296,616,624,728,736,744,1056,1128,1336,1616,2176,2240,2272,2560,3296,3544,3552,3720,9688-u64max
PARAM_VALUE 6 strict 0-3,64-67
BUF_SIZE 0 net (-1),1-s32max
BUF_SIZE 0 net (-1),1-s32max
BUF_SIZE 5 skb (-1)-s32max
BUF_SIZE 5 skb (-1)-s32max
DATA_SOURCE 0 net $0
DATA_SOURCE 2 fl6 $3
DATA_SOURCE 3 oif $2
DATA_SOURCE 5 skb $4
BIT_INFO 6 strict 0x0,0x43
NOSPEC 2 fl6->__fl_common.flowic_oif
NOSPEC 2 fl6->flowlabel
NOSPEC 3 oif
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 5 skb->csum 0-4294967040[c]
HOST_DATA 5 skb->csum_offset 0-u16max
HOST_DATA 5 skb->data_len 0-u32max[c]
HOST_DATA 5 skb->len 0-u32max[c]
HOST_DATA 5 skb->prev->csum_offset 0-u16max
HOST_DATA 5 skb->prev->data_len 0-u32max[c]
HOST_DATA 5 skb->prev->len 0-u32max[c]
HOST_DATA 5 skb->prev->tstamp 500000002-4294967299794967295[c]
HOST_DATA 5 skb->truesize 0-u32max
HOST_DATA 5 skb->tstamp 500000002-4294967299794967295[c]
HOST_DATA 5 skb->users.refs.counter s32min-0,2-s32max
HOST_DATA 5 *skb->data 0-255
USER_DATA 2 fl6->__fl_common.flowic_oif s32min-s32max
USER_DATA 2 fl6->__fl_common.flowic_proto 0-255
USER_DATA 2 fl6->flowlabel 0-u32max[c]
USER_DATA 2 fl6->uli.ports.dport 0-u16max
USER_DATA 3 oif s32min-s32max
USER_DATA 4 have_oif_match 0-1
NO_OVERFLOW_SIMPLE 5 skb->data_len
NO_OVERFLOW_SIMPLE 5 skb->dev->group
NO_OVERFLOW_SIMPLE 5 skb->dev->num_tc
NO_OVERFLOW_SIMPLE 5 skb->dev->proto_down
NO_OVERFLOW_SIMPLE 5 skb->dev->real_num_rx_queues
NO_OVERFLOW_SIMPLE 5 skb->dev->real_num_tx_queues
NO_OVERFLOW_SIMPLE 5 skb->dev->stats.rx_bytes
NO_OVERFLOW_SIMPLE 5 skb->dev->stats.tx_bytes
NO_OVERFLOW_SIMPLE 5 skb->dev->tx_queue_len
NO_OVERFLOW_SIMPLE 5 skb->end
NO_OVERFLOW_SIMPLE 5 skb->extensions
NO_OVERFLOW_SIMPLE 5 skb->len
NO_OVERFLOW_SIMPLE 5 skb->next->end
NO_OVERFLOW_SIMPLE 5 skb->next->len
NO_OVERFLOW_SIMPLE 5 skb->next->tail
NO_OVERFLOW_SIMPLE 5 skb->next->truesize
NO_OVERFLOW_SIMPLE 5 skb->prev->end
NO_OVERFLOW_SIMPLE 5 skb->prev->len
NO_OVERFLOW_SIMPLE 5 skb->prev->tail
NO_OVERFLOW_SIMPLE 5 skb->prev->truesize
NO_OVERFLOW_SIMPLE 5 skb->sk->sk_backlog.len
NO_OVERFLOW_SIMPLE 5 skb->tail
NO_OVERFLOW_SIMPLE 5 skb->truesize
UNITS 0 net unit_byte
UNITS 3 oif unit_array_size
UNITS 5 skb unit_byte
LOCK2 rcu_read
HALF_LOCKED2 0 &net->ipv4.mfc_mutex
HALF_LOCKED2 0 &net->ipv6.mfc_mutex

net/ipv6/route.c ip6_pol_route_lookup() -> fib6_select_path()

Type Parameter Key Value
PARAM_VALUE 0 net 4096-ptr_max
PARAM_VALUE 0 net->ipv4.fqdir->f->frag_expire 0,663510801442193408,1753052602134376448,4007388366431105024,8876081723503042560
PARAM_VALUE 0 net->ipv4.fqdir->f->qsize 0,304,320
PARAM_VALUE 0 net->loopback_dev->rtnl_link_ops->maxtype 0-6,8-10,15,18,20,22,24,34,50
PARAM_VALUE 1 res 1565029624403046400
PARAM_VALUE 1 res->f6i 1-u64max
PARAM_VALUE 1 res->rt6 0
PARAM_VALUE 2 fl6 4096-ptr_max
PARAM_VALUE 5 skb->dev->ethtool_ops->create_rxfh_context 0-s64max
PARAM_VALUE 5 skb->dev->ethtool_ops->get_link_ext_state 0-s64max
PARAM_VALUE 5 skb->dev->ethtool_ops->get_mm_stats 0-s64max
PARAM_VALUE 5 skb->dev->ethtool_ops->modify_rxfh_context 0-s64max
PARAM_VALUE 5 skb->dev->ethtool_ops->remove_rxfh_context 0-s64max
PARAM_VALUE 5 skb->dev->ethtool_ops->rxfh_max_num_contexts 0-4294967295
PARAM_VALUE 5 skb->dev->ethtool_ops->supported_coalesce_params 0-s64max
PARAM_VALUE 5 skb->dev->nd_net.net->ipv4.fqdir->f->frag_expire 0,663510801442193408,1753052602134376448,4007388366431105024,8876081723503042560
PARAM_VALUE 5 skb->dev->nd_net.net->ipv4.fqdir->f->qsize 0,304,320
PARAM_VALUE 5 skb->dev->ndisc_ops->fill_addr_option 4096-ptr_max
PARAM_VALUE 5 skb->dev->ndisc_ops->parse_options 4096-ptr_max
PARAM_VALUE 5 skb->dev->ndisc_ops->update 4096-ptr_max
PARAM_VALUE 5 skb->dev->rtnl_link_ops->maxtype 0-6,8-10,15,18,20,22,24,34,50
PARAM_VALUE 5 skb->dev->rtnl_link_ops->priv_size 0,8,32,40,48,56,88,112,120,144,160,224,240,256,296,616,624,728,736,744,1056,1128,1336,1616,2176,2240,2272,2560,3296,3544,3552,3720,9688-u64max
PARAM_VALUE 6 strict 0-255
BUF_SIZE 0 net (-1),1-s32max
BUF_SIZE 0 net (-1),1-s32max
BUF_SIZE 2 fl6 (-1),88
BUF_SIZE 2 fl6 (-1),88
BUF_SIZE 5 skb (-1)-s32max
BUF_SIZE 5 skb (-1)-s32max
DATA_SOURCE 0 net $0
DATA_SOURCE 2 fl6 $2
DATA_SOURCE 5 skb $3
DATA_SOURCE 6 strict $4
FUZZY_MAX 6 strict 4
NOSPEC 2 fl6->__fl_common.flowic_oif
NOSPEC 2 fl6->flowlabel
NOSPEC 3 oif
NOSPEC 3 oif
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 5 skb->csum 0-4294967040[c]
HOST_DATA 5 skb->csum_offset 0-u16max
HOST_DATA 5 skb->data_len 0-u32max[c]
HOST_DATA 5 skb->len 0-u32max[c]
HOST_DATA 5 skb->prev->csum_offset 0-u16max
HOST_DATA 5 skb->prev->data_len 0-u32max[c]
HOST_DATA 5 skb->prev->len 0-u32max[c]
HOST_DATA 5 skb->prev->tstamp 500000002-4294967299794967295[c]
HOST_DATA 5 skb->truesize 0-u32max
HOST_DATA 5 skb->tstamp 500000002-4294967299794967295[c]
HOST_DATA 5 skb->users.refs.counter s32min-0,2-s32max
HOST_DATA 5 *skb->data 0-255
USER_DATA 2 fl6->__fl_common.flowic_oif s32min-s32max
USER_DATA 2 fl6->__fl_common.flowic_proto 0-255
USER_DATA 2 fl6->flowlabel 0-u32max[c]
USER_DATA 2 fl6->uli.ports.dport 0-u16max
USER_DATA 3 oif s32min-s32max
USER_DATA 4 have_oif_match 0-1
NO_OVERFLOW_SIMPLE 5 skb->data_len
NO_OVERFLOW_SIMPLE 5 skb->dev->group
NO_OVERFLOW_SIMPLE 5 skb->dev->num_tc
NO_OVERFLOW_SIMPLE 5 skb->dev->real_num_rx_queues
NO_OVERFLOW_SIMPLE 5 skb->dev->real_num_tx_queues
NO_OVERFLOW_SIMPLE 5 skb->dev->stats.rx_bytes
NO_OVERFLOW_SIMPLE 5 skb->dev->stats.tx_bytes
NO_OVERFLOW_SIMPLE 5 skb->dev->tx_queue_len
NO_OVERFLOW_SIMPLE 5 skb->end
NO_OVERFLOW_SIMPLE 5 skb->extensions
NO_OVERFLOW_SIMPLE 5 skb->len
NO_OVERFLOW_SIMPLE 5 skb->next->end
NO_OVERFLOW_SIMPLE 5 skb->next->len
NO_OVERFLOW_SIMPLE 5 skb->next->tail
NO_OVERFLOW_SIMPLE 5 skb->next->truesize
NO_OVERFLOW_SIMPLE 5 skb->prev->end
NO_OVERFLOW_SIMPLE 5 skb->prev->len
NO_OVERFLOW_SIMPLE 5 skb->prev->tail
NO_OVERFLOW_SIMPLE 5 skb->prev->truesize
NO_OVERFLOW_SIMPLE 5 skb->sk->sk_backlog.len
NO_OVERFLOW_SIMPLE 5 skb->tail
NO_OVERFLOW_SIMPLE 5 skb->truesize
UNITS 0 net unit_byte
UNITS 3 oif unit_array_size
UNITS 5 skb unit_byte
LOCK2 rcu_read
HALF_LOCKED2 0 &net->ipv4.mfc_mutex
HALF_LOCKED2 0 &net->ipv6.mfc_mutex

net/ipv6/route.c ip6_route_check_nh() -> fib6_select_path()

Type Parameter Key Value
PARAM_VALUE 0 net 4096-ptr_max
PARAM_VALUE 1 res 7594205183180591104
PARAM_VALUE 1 res->f6i 0,4096-ptr_max
PARAM_VALUE 1 res->nh 4096-ptr_max
PARAM_VALUE 1 res->rt6 0
PARAM_VALUE 2 fl6 9008373118169518080
PARAM_VALUE 2 fl6->__fl_common.flowic_flags 0
PARAM_VALUE 2 fl6->__fl_common.flowic_proto 0
PARAM_VALUE 2 fl6->flowlabel 0
PARAM_VALUE 2 fl6->mp_hash 0
PARAM_VALUE 2 fl6->uli.ports.dport 0
PARAM_VALUE 2 fl6->uli.ports.sport 0
PARAM_VALUE 5 skb 0
PARAM_VALUE 6 strict 1
PARAM_VALUE 6 strict->u.ip6.mp_hash 0-4294967295
CAPPED_DATA 3 oif 1
DATA_SOURCE 0 net $0
NOSPEC 2 fl6->__fl_common.flowic_oif
NOSPEC 3 oif
NOSPEC 3 oif
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 2 fl6->__fl_common.flowic_oif s32min-(-1),1-s32max[c]
USER_DATA 3 oif s32min-(-1),1-s32max[c]
USER_DATA 4 have_oif_match 1[c]
UNITS 0 net unit_byte
UNITS 3 oif unit_array_size
LOCK2 rcu_read
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 0 &net->rtnl_mutex