Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 5 files:

Smatch caller information:

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

Type Parameter Key Value
PARAM_VALUE 1 table 4096-ptr_max
PARAM_VALUE 1 table->tb6_id 1-u32max
PARAM_VALUE 3 fl6 7057109324066013184
PARAM_VALUE 3 fl6->mp_hash 0
PARAM_VALUE 4 res 6489984386563125248
PARAM_VALUE 4 res->f6i 0
PARAM_VALUE 4 res->fib6_flags 0
PARAM_VALUE 4 res->fib6_type 0
PARAM_VALUE 4 res->nh 0
PARAM_VALUE 4 res->rt6 0
PARAM_VALUE 5 strict 0,4
CAPPED_DATA 1 table->tb6_id 1
DATA_SOURCE 0 net $0
DATA_SOURCE 1 table r fib6_get_table
FUZZY_MAX 5 strict 4
BIT_INFO 5 strict 0x0,0x4
HARD_MAX 5 strict 4
UNITS 0 net unit_byte
UNITS 2 oif unit_array_size

net/ipv6/fib6_rules.c fib6_lookup() -> fib6_table_lookup()

Type Parameter Key Value
PARAM_VALUE 0 net 4096-ptr_max
PARAM_VALUE 0 net->ipv6.fib6_has_custom_rules 0
PARAM_VALUE 3 fl6 1369359372544241664,7057109324066013184,7895334129672425472,9008373118169518080
PARAM_VALUE 3 fl6->mp_hash 0
PARAM_VALUE 4 res 799536805009985536,3950506972249399296,6489984386563125248,7594205183180591104
PARAM_VALUE 4 res->f6i 0,4096-ptr_max
PARAM_VALUE 4 res->rt6 0
PARAM_VALUE 5 strict 0-1,4,128-129,132-133
DATA_SOURCE 0 net $0
DATA_SOURCE 2 oif $1
DATA_SOURCE 3 fl6 $2
DATA_SOURCE 4 res $3
DATA_SOURCE 5 strict $4
FUZZY_MAX 5 strict 4
NOSPEC 2 oif
NOSPEC 2 oif
NOSPEC 3 fl6->__fl_common.flowic_oif
RX_PATH
TASK_NOT_RUNNING
USER_DATA 2 oif s32min-(-1),1-s32max[c]
USER_DATA 3 fl6->__fl_common.flowic_oif s32min-(-1),1-s32max[c]
UNITS 0 net unit_byte
UNITS 2 oif unit_array_size
HALF_LOCKED2 rcu_read
HALF_LOCKED2 0 &net->rtnl_mutex

net/ipv6/fib6_rules.c fib6_lookup() -> fib6_table_lookup()

Type Parameter Key Value
PARAM_VALUE 0 net 4096-ptr_max
PARAM_VALUE 0 net->ipv6.fib6_has_custom_rules 0
PARAM_VALUE 3 fl6 1369359372544241664,7057109324066013184,7895334129672425472,9008373118169518080
PARAM_VALUE 3 fl6->mp_hash 0
PARAM_VALUE 4 res 799536805009985536,3950506972249399296,6489984386563125248,7594205183180591104
PARAM_VALUE 4 res->f6i 4096-ptr_max
PARAM_VALUE 4 res->nh->nh_common.nhc_family 0,2,10
PARAM_VALUE 4 res->nh->nh_common.nhc_gw_family 0,2,10
PARAM_VALUE 4 res->rt6 0
PARAM_VALUE 5 strict 0-1,4,128-129,132-133
CAPPED_DATA 4 res->f6i 1
DATA_SOURCE 0 net $0
DATA_SOURCE 2 oif $1
DATA_SOURCE 3 fl6 $2
DATA_SOURCE 4 res $3
DATA_SOURCE 5 strict $4
FUZZY_MAX 5 strict 4
PARAM_COMPARE 0 net->ipv6.fib6_null_entry == $4->f6i
NOSPEC 2 oif
NOSPEC 2 oif
NOSPEC 3 fl6->__fl_common.flowic_oif
RX_PATH
TASK_NOT_RUNNING
USER_DATA 2 oif s32min-(-1),1-s32max[c]
USER_DATA 3 fl6->__fl_common.flowic_oif s32min-(-1),1-s32max[c]
UNITS 0 net unit_byte
UNITS 2 oif unit_array_size
HALF_LOCKED2 rcu_read
HALF_LOCKED2 0 &net->rtnl_mutex

net/ipv6/fib6_rules.c fib6_rule_action_alt() -> fib6_table_lookup()

Type Parameter Key Value
PARAM_VALUE 1 table 4096-ptr_max
PARAM_VALUE 1 table->tb6_id 1-u32max
PARAM_VALUE 4 res 4096-ptr_max
PARAM_VALUE 5 strict 0-255
BUF_SIZE 3 fl6 88
BUF_SIZE 4 res (-1),8,32
BUF_SIZE 4 res (-1),8,32
CAPPED_DATA 1 table->tb6_id 1
DATA_SOURCE 1 table r fib6_get_table
DATA_SOURCE 5 strict $2
FUZZY_MAX 5 strict 4
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

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

Type Parameter Key Value
PARAM_VALUE 0 net 4096-ptr_max
PARAM_VALUE 1 table 4096-ptr_max
PARAM_VALUE 1 table->tb6_id 1-u32max
PARAM_VALUE 3 fl6 5010118551655186432
PARAM_VALUE 3 fl6->mp_hash 0
PARAM_VALUE 4 res 168347169887920128,7594205183180591104
PARAM_VALUE 4 res->f6i 0
PARAM_VALUE 4 res->fib6_flags 0
PARAM_VALUE 4 res->fib6_type 0
PARAM_VALUE 4 res->nh 0
PARAM_VALUE 4 res->rt6 0
PARAM_VALUE 5 strict 64-65,68-69
CAPPED_DATA 1 table->tb6_id 1
CAPPED_DATA 2 oif 1
DATA_SOURCE 0 net $0
DATA_SOURCE 1 table r fib6_get_table
DATA_SOURCE 4 res $5
DATA_SOURCE 5 strict $4 [m]
BIT_INFO 5 strict 0x40,0x45
NOSPEC 2 oif
NOSPEC 2 oif
NOSPEC 3 fl6->__fl_common.flowic_oif
RX_PATH
TASK_NOT_RUNNING
USER_DATA 2 oif s32min-(-1),1-s32max[c]
USER_DATA 3 fl6->__fl_common.flowic_oif s32min-(-1),1-s32max[c]
UNITS 0 net unit_byte
UNITS 2 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_table_lookup()

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 4 res 6795172478755725312
PARAM_VALUE 4 res->f6i 0
PARAM_VALUE 4 res->fib6_flags 0
PARAM_VALUE 4 res->fib6_type 0
PARAM_VALUE 4 res->nh 0
PARAM_VALUE 4 res->rt6 0
PARAM_VALUE 5 strict 0-3,64-67
BUF_SIZE 0 net (-1),1-s32max
BUF_SIZE 0 net (-1),1-s32max
DATA_SOURCE 0 net $0
DATA_SOURCE 1 table $1
DATA_SOURCE 2 oif $2
DATA_SOURCE 3 fl6 $3
BIT_INFO 5 strict 0x0,0x43
NOSPEC 2 oif
NOSPEC 3 fl6->__fl_common.flowic_oif
NOSPEC 3 fl6->flowlabel
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 2 oif s32min-s32max
USER_DATA 3 fl6->__fl_common.flowic_oif s32min-s32max
USER_DATA 3 fl6->__fl_common.flowic_proto 0-255
USER_DATA 3 fl6->flowlabel 0-u32max[c]
USER_DATA 3 fl6->uli.ports.dport 0-u16max
UNITS 0 net unit_byte
UNITS 2 oif unit_array_size
LOCK2 rcu_read
HALF_LOCKED2 0 &net->ipv4.mfc_mutex
HALF_LOCKED2 0 &net->ipv6.mfc_mutex

net/ipv6/fib6_rules.c pol_lookup_func() -> pol_lookup_func ptr __f1()

Type Parameter Key Value
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 3 fl6->dev->nd_net.net->ipv4.fqdir->f->frag_expire 0,663510801442193408,1753052602134376448,4007388366431105024,8876081723503042560
PARAM_VALUE 3 fl6->dev->nd_net.net->ipv4.fqdir->f->qsize 0,304,320
PARAM_VALUE 3 fl6->dev->ndisc_ops->fill_addr_option 4096-ptr_max
PARAM_VALUE 3 fl6->dev->ndisc_ops->parse_options 4096-ptr_max
PARAM_VALUE 3 fl6->dev->ndisc_ops->update 4096-ptr_max
PARAM_VALUE 3 fl6->dev->rtnl_link_ops->maxtype 0-6,8-10,15,18,20,22,24,34,50
PARAM_VALUE 3 fl6->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 4 res 0-255
BUF_SIZE 0 net (-1),1-s32max
BUF_SIZE 0 net (-1),1-s32max
BUF_SIZE 2 oif (-1),88
BUF_SIZE 2 oif (-1),88
BUF_SIZE 3 fl6 (-1)-s32max
BUF_SIZE 3 fl6 (-1)-s32max
DATA_SOURCE 0 net $1
DATA_SOURCE 1 table $2
DATA_SOURCE 2 oif $3
DATA_SOURCE 3 fl6 $4
DATA_SOURCE 4 res $5
FUZZY_MAX 4 res 4
NOSPEC 2 oif->__fl_common.flowic_oif
NOSPEC 2 oif->flowlabel
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 3 fl6->csum 0-4294967040[c]
HOST_DATA 3 fl6->csum_offset 0-u16max
HOST_DATA 3 fl6->data_len 0-u32max[c]
HOST_DATA 3 fl6->len 0-u32max[c]
HOST_DATA 3 fl6->prev->csum_offset 0-u16max
HOST_DATA 3 fl6->prev->data_len 0-u32max[c]
HOST_DATA 3 fl6->prev->len 0-u32max[c]
HOST_DATA 3 fl6->prev->tstamp 500000002-4294967299794967295[c]
HOST_DATA 3 fl6->truesize 0-u32max
HOST_DATA 3 fl6->tstamp 500000002-4294967299794967295[c]
HOST_DATA 3 fl6->users.refs.counter s32min-0,2-s32max
HOST_DATA 3 *fl6->data 0-255
USER_DATA 2 oif->__fl_common.flowic_oif s32min-s32max
USER_DATA 2 oif->__fl_common.flowic_proto 0-255
USER_DATA 2 oif->flowlabel 0-u32max[c]
USER_DATA 2 oif->uli.ports.dport 0-u16max
NO_OVERFLOW_SIMPLE 3 fl6->data_len
NO_OVERFLOW_SIMPLE 3 fl6->dev->group
NO_OVERFLOW_SIMPLE 3 fl6->dev->num_tc
NO_OVERFLOW_SIMPLE 3 fl6->dev->proto_down
NO_OVERFLOW_SIMPLE 3 fl6->dev->real_num_rx_queues
NO_OVERFLOW_SIMPLE 3 fl6->dev->real_num_tx_queues
NO_OVERFLOW_SIMPLE 3 fl6->dev->stats.rx_bytes
NO_OVERFLOW_SIMPLE 3 fl6->dev->stats.tx_bytes
NO_OVERFLOW_SIMPLE 3 fl6->dev->tx_queue_len
NO_OVERFLOW_SIMPLE 3 fl6->end
NO_OVERFLOW_SIMPLE 3 fl6->extensions
NO_OVERFLOW_SIMPLE 3 fl6->len
NO_OVERFLOW_SIMPLE 3 fl6->next->data_len
NO_OVERFLOW_SIMPLE 3 fl6->next->end
NO_OVERFLOW_SIMPLE 3 fl6->next->len
NO_OVERFLOW_SIMPLE 3 fl6->next->tail
NO_OVERFLOW_SIMPLE 3 fl6->next->truesize
NO_OVERFLOW_SIMPLE 3 fl6->prev->end
NO_OVERFLOW_SIMPLE 3 fl6->prev->len
NO_OVERFLOW_SIMPLE 3 fl6->prev->tail
NO_OVERFLOW_SIMPLE 3 fl6->prev->truesize
NO_OVERFLOW_SIMPLE 3 fl6->sk->sk_backlog.len
NO_OVERFLOW_SIMPLE 3 fl6->tail
NO_OVERFLOW_SIMPLE 3 fl6->truesize
UNITS 0 net unit_byte
UNITS 3 fl6 unit_byte
HALF_LOCKED2 rcu_read
HALF_LOCKED2 0 &net->ipv4.mfc_mutex
HALF_LOCKED2 0 &net->ipv6.mfc_mutex