diff options
Diffstat (limited to 'tools/bpf/bpftool/map.c')
| -rw-r--r-- | tools/bpf/bpftool/map.c | 12 | 
1 files changed, 10 insertions, 2 deletions
| diff --git a/tools/bpf/bpftool/map.c b/tools/bpf/bpftool/map.c index aaeb8939e137..ae9e822aa3fe 100644 --- a/tools/bpf/bpftool/map.c +++ b/tools/bpf/bpftool/map.c @@ -139,6 +139,9 @@ static void print_entry_json(struct bpf_map_info *info, unsigned char *key,  		print_hex_data_json(key, info->key_size);  		jsonw_name(json_wtr, "value");  		print_hex_data_json(value, info->value_size); +		if (map_is_map_of_maps(info->type)) +			jsonw_uint_field(json_wtr, "inner_map_id", +					 *(unsigned int *)value);  		if (btf) {  			struct btf_dumper d = {  				.btf = btf, @@ -259,8 +262,13 @@ static void print_entry_plain(struct bpf_map_info *info, unsigned char *key,  		}  		if (info->value_size) { -			printf("value:%c", break_names ? '\n' : ' '); -			fprint_hex(stdout, value, info->value_size, " "); +			if (map_is_map_of_maps(info->type)) { +				printf("inner_map_id:%c", break_names ? '\n' : ' '); +				printf("%u ", *(unsigned int *)value); +			} else { +				printf("value:%c", break_names ? '\n' : ' '); +				fprint_hex(stdout, value, info->value_size, " "); +			}  		}  		printf("\n"); | 
