FD.io VPP
v20.01-48-g3e0dafb74
Vector Packet Processing
format.c
Go to the documentation of this file.
1
/*
2
*------------------------------------------------------------------
3
* Copyright (c) 2018 Cisco and/or its affiliates.
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at:
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*------------------------------------------------------------------
16
*/
17
#include <
vlib/vlib.h
>
18
#include <
vlib/unix/unix.h
>
19
#include <
vlib/pci/pci.h
>
20
#include <
vnet/ethernet/ethernet.h
>
21
#include <
vnet/ip/ip4_packet.h
>
22
#include <
vnet/ip/ip6_packet.h
>
23
#include <
vnet/devices/virtio/virtio.h
>
24
#include <
vnet/devices/virtio/pci.h
>
25
26
u8
*
27
format_virtio_device_name
(
u8
* s, va_list * args)
28
{
29
u32
dev_instance = va_arg (*args,
u32
);
30
virtio_main_t
*mm = &
virtio_main
;
31
virtio_if_t
*vif =
pool_elt_at_index
(mm->
interfaces
, dev_instance);
32
33
if
(vif->
type
==
VIRTIO_IF_TYPE_TAP
)
34
s =
format
(s,
"tap%u"
, vif->
id
);
35
else
if
(vif->
type
==
VIRTIO_IF_TYPE_PCI
)
36
s =
format
(s,
"virtio-%x/%x/%x/%x"
, vif->
pci_addr
.
domain
,
37
vif->
pci_addr
.
bus
, vif->
pci_addr
.
slot
,
38
vif->
pci_addr
.
function
);
39
else
40
s =
format
(s,
"virtio-%lu"
, vif->
dev_instance
);
41
42
return
s;
43
}
44
45
u8
*
46
format_virtio_log_name
(
u8
* s, va_list * args)
47
{
48
virtio_if_t
*vif = va_arg (*args,
virtio_if_t
*);
49
50
if
(vif->
type
==
VIRTIO_IF_TYPE_TAP
)
51
s =
format
(s,
"tap%u"
, vif->
id
);
52
else
if
(vif->
type
==
VIRTIO_IF_TYPE_PCI
)
53
s =
format
(s,
"%U"
,
format_vlib_pci_addr
, &vif->
pci_addr
);
54
else
55
s =
format
(s,
"virtio-%lu"
, vif->
dev_instance
);
56
57
return
s;
58
}
59
60
/*
61
* fd.io coding-style-patch-verification: ON
62
*
63
* Local Variables:
64
* eval: (c-set-style "gnu")
65
* End:
66
*/
virtio_main_t::interfaces
virtio_if_t * interfaces
Definition:
virtio.h:188
virtio_if_t::dev_instance
u32 dev_instance
Definition:
virtio.h:140
ip6_packet.h
format
u8 * format(u8 *s, const char *fmt,...)
Definition:
format.c:424
pci_addr_t::domain
u16 domain
Definition:
virtio.h:127
u8
unsigned char u8
Definition:
types.h:56
virtio_if_t
Definition:
virtio.h:135
virtio_main_t
Definition:
virtio.h:183
pci_addr_t::bus
u8 bus
Definition:
virtio.h:128
u32
unsigned int u32
Definition:
types.h:88
virtio_if_t::id
u32 id
Definition:
virtio.h:148
VIRTIO_IF_TYPE_TAP
Definition:
virtio.h:85
ethernet.h
pool_elt_at_index
#define pool_elt_at_index(p, i)
Returns pointer to element at given index.
Definition:
pool.h:519
ip4_packet.h
format_virtio_device_name
u8 * format_virtio_device_name(u8 *s, va_list *args)
Definition:
format.c:27
unix.h
pci.h
virtio_if_t::pci_addr
pci_addr_t pci_addr
Definition:
virtio.h:149
format_virtio_log_name
u8 * format_virtio_log_name(u8 *s, va_list *args)
Definition:
format.c:46
pci.h
vlib.h
virtio_if_t::type
virtio_if_type_t type
Definition:
virtio.h:145
VIRTIO_IF_TYPE_PCI
Definition:
virtio.h:86
pci_addr_t::function
u8 function
Definition:
virtio.h:130
virtio_main
virtio_main_t virtio_main
Definition:
virtio.c:37
virtio.h
format_vlib_pci_addr
format_function_t format_vlib_pci_addr
Definition:
pci.h:324
pci_addr_t::slot
u8 slot
Definition:
virtio.h:129
src
vnet
devices
virtio
format.c
Generated on Wed Sep 9 2020 00:03:21 for FD.io VPP by
1.8.13