Line data Source code
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 600 : format_virtio_device_name (u8 * s, va_list * args) 28 : { 29 600 : u32 dev_instance = va_arg (*args, u32); 30 600 : virtio_main_t *mm = &virtio_main; 31 600 : virtio_if_t *vif = pool_elt_at_index (mm->interfaces, dev_instance); 32 : 33 600 : if (vif->type == VIRTIO_IF_TYPE_TAP) 34 504 : s = format (s, "tap%u", vif->id); 35 96 : else if (vif->type == VIRTIO_IF_TYPE_PCI) 36 0 : s = format (s, "virtio-%x/%x/%x/%x", vif->pci_addr.domain, 37 0 : vif->pci_addr.bus, vif->pci_addr.slot, 38 0 : vif->pci_addr.function); 39 96 : else if (vif->type == VIRTIO_IF_TYPE_TUN) 40 96 : s = format (s, "tun%u", vif->id); 41 : else 42 0 : s = format (s, "virtio-%lu", vif->dev_instance); 43 : 44 600 : return s; 45 : } 46 : 47 : u8 * 48 0 : format_virtio_log_name (u8 * s, va_list * args) 49 : { 50 0 : virtio_if_t *vif = va_arg (*args, virtio_if_t *); 51 : 52 0 : if (vif->type == VIRTIO_IF_TYPE_TAP) 53 0 : s = format (s, "tap%u", vif->id); 54 0 : else if (vif->type == VIRTIO_IF_TYPE_TUN) 55 0 : s = format (s, "tun%u", vif->id); 56 0 : else if (vif->type == VIRTIO_IF_TYPE_PCI) 57 0 : s = format (s, "%U", format_vlib_pci_addr, &vif->pci_addr); 58 : else 59 0 : s = format (s, "virtio-%lu", vif->dev_instance); 60 : 61 0 : return s; 62 : } 63 : 64 : /* 65 : * fd.io coding-style-patch-verification: ON 66 : * 67 : * Local Variables: 68 : * eval: (c-set-style "gnu") 69 : * End: 70 : */