2016-08-30 5 views
1

DPDK가 포함 된 OVS를 설치하려면 this 안내를 따르십시오.
나는 오류없이 OVSCant`make install` ovs

cd $OVS_DIR 
./boot.sh 
./configure --with-dpdk=$DPDK_BUILD 

모두가 잘 실행 설치 2.3까지 관리하지만

make install 

을 할 때 실패합니다.

여기에 내가 놓친 거지 이해 해달라고 출력

[email protected]:/usr/src/openvswitch-2.5.0# make install 
make install-recursive 
make[1]: Entering directory '/usr/src/openvswitch-2.5.0' 
Making install in datapath 
make[2]: Entering directory '/usr/src/openvswitch-2.5.0/datapath' 
make[3]: Entering directory '/usr/src/openvswitch-2.5.0/datapath' 
make[4]: Entering directory '/usr/src/openvswitch-2.5.0/datapath' 
make[4]: Nothing to be done for 'install-exec-am'. 
make[4]: Nothing to be done for 'install-data-am'. 
make[4]: Leaving directory '/usr/src/openvswitch-2.5.0/datapath' 
make[3]: Leaving directory '/usr/src/openvswitch-2.5.0/datapath' 
make[2]: Leaving directory '/usr/src/openvswitch-2.5.0/datapath' 
make[2]: Entering directory '/usr/src/openvswitch-2.5.0' 
depbase=`echo lib/netdev-dpdk.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ 
/bin/bash ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I ./include -I ./include -I ./lib -I ./lib -I/usr/include -Wstrict-prototypes -Wall -Wextra -Wno-sign-compare -Wpointer-arith -Wformat-security -Wswitch-enum -Wunused-parameter -Wbad-function-cast -Wcast-align -Wmissing-prototypes -Wmissing-field-initializers -fno-strict-aliasing -mssse3 -I/usr/src/dpdk-16.07/x86_64-native-linuxapp-gcc/include -D_FILE_OFFSET_BITS=64 -g -O2 -MT lib/netdev-dpdk.lo -MD -MP -MF $depbase.Tpo -c -o lib/netdev-dpdk.lo lib/netdev-dpdk.c &&\ 
mv -f $depbase.Tpo $depbase.Plo 
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I ./include -I ./include -I ./lib -I ./lib -I/usr/include -Wstrict-prototypes -Wall -Wextra -Wno-sign-compare -Wpointer-arith -Wformat-security -Wswitch-enum -Wunused-parameter -Wbad-function-cast -Wcast-align -Wmissing-prototypes -Wmissing-field-initializers -fno-strict-aliasing -mssse3 -I/usr/src/dpdk-16.07/x86_64-native-linuxapp-gcc/include -D_FILE_OFFSET_BITS=64 -g -O2 -MT lib/netdev-dpdk.lo -MD -MP -MF lib/.deps/netdev-dpdk.Tpo -c lib/netdev-dpdk.c -o lib/netdev-dpdk.o 
lib/netdev-dpdk.c: In function ‘__rte_pktmbuf_init’: 
lib/netdev-dpdk.c:293:5: warning: implicit declaration of function ‘RTE_MBUF_ASSERT’ [-Wimplicit-function-declaration] 
    RTE_MBUF_ASSERT(mp->elt_size >= sizeof(struct dp_packet)); 
    ^
lib/netdev-dpdk.c: In function ‘netdev_dpdk_vhost_user_construct’: 
lib/netdev-dpdk.c:708:11: error: too few arguments to function ‘rte_vhost_driver_register’ 
    err = rte_vhost_driver_register(netdev->vhost_id); 
     ^
In file included from lib/netdev-dpdk.c:56:0: 
/usr/src/dpdk-16.07/x86_64-native-linuxapp-gcc/include/rte_virtio_net.h:95:5: note: declared here 
int rte_vhost_driver_register(const char *path, uint64_t flags); 
    ^
lib/netdev-dpdk.c: In function ‘is_vhost_running’: 
lib/netdev-dpdk.c:995:32: error: dereferencing pointer to incomplete type ‘struct virtio_net’ 
    return (dev != NULL && (dev->flags & VIRTIO_DEV_RUNNING)); 
           ^
lib/netdev-dpdk.c:995:42: error: ‘VIRTIO_DEV_RUNNING’ undeclared (first use in this function) 
    return (dev != NULL && (dev->flags & VIRTIO_DEV_RUNNING)); 
             ^
lib/netdev-dpdk.c:995:42: note: each undeclared identifier is reported only once for each function it appears in 
lib/netdev-dpdk.c: In function ‘netdev_dpdk_vhost_rxq_recv’: 
lib/netdev-dpdk.c:1049:37: warning: passing argument 1 of ‘rte_vhost_dequeue_burst’ makes integer from pointer without a cast [-Wint-conversion] 
    nb_rx = rte_vhost_dequeue_burst(virtio_dev, qid * VIRTIO_QNUM + VIRTIO_TXQ, 
            ^
In file included from lib/netdev-dpdk.c:56:0: 
/usr/src/dpdk-16.07/x86_64-native-linuxapp-gcc/include/rte_virtio_net.h:194:10: note: expected ‘int’ but argument is of type ‘struct virtio_net *’ 
uint16_t rte_vhost_dequeue_burst(int vid, uint16_t queue_id, 
     ^
lib/netdev-dpdk.c: In function ‘__netdev_dpdk_vhost_send’: 
lib/netdev-dpdk.c:1138:43: warning: passing argument 1 of ‘rte_vhost_enqueue_burst’ makes integer from pointer without a cast [-Wint-conversion] 
     tx_pkts = rte_vhost_enqueue_burst(virtio_dev, vhost_qid, 
             ^
In file included from lib/netdev-dpdk.c:56:0: 
/usr/src/dpdk-16.07/x86_64-native-linuxapp-gcc/include/rte_virtio_net.h:174:10: note: expected ‘int’ but argument is of type ‘struct virtio_net *’ 
uint16_t rte_vhost_enqueue_burst(int vid, uint16_t queue_id, 
     ^
lib/netdev-dpdk.c:1157:21: warning: implicit declaration of function ‘rte_vring_available_entries’ [-Wimplicit-function-declaration] 
      while (!rte_vring_available_entries(virtio_dev, vhost_qid)) { 
        ^
lib/netdev-dpdk.c: In function ‘netdev_dpdk_get_stats’: 
lib/netdev-dpdk.c:1526:33: error: ‘struct rte_eth_stats’ has no member named ‘imcasts’ 
    stats->multicast = rte_stats.imcasts; 
           ^
lib/netdev-dpdk.c: In function ‘netdev_dpdk_get_features’: 
lib/netdev-dpdk.c:1569:29: error: ‘ETH_LINK_AUTONEG_DUPLEX’ undeclared (first use in this function) 
    if (link.link_duplex == ETH_LINK_AUTONEG_DUPLEX) { 
          ^
lib/netdev-dpdk.c:1574:32: error: ‘ETH_LINK_SPEED_10’ undeclared (first use in this function) 
     if (link.link_speed == ETH_LINK_SPEED_10) { 
           ^
lib/netdev-dpdk.c:1577:32: error: ‘ETH_LINK_SPEED_100’ undeclared (first use in this function) 
     if (link.link_speed == ETH_LINK_SPEED_100) { 
           ^
lib/netdev-dpdk.c:1580:32: error: ‘ETH_LINK_SPEED_1000’ undeclared (first use in this function) 
     if (link.link_speed == ETH_LINK_SPEED_1000) { 
           ^
lib/netdev-dpdk.c:1593:32: error: ‘ETH_LINK_SPEED_10000’ undeclared (first use in this function) 
     if (link.link_speed == ETH_LINK_SPEED_10000) { 
           ^
lib/netdev-dpdk.c: In function ‘set_irq_status’: 
lib/netdev-dpdk.c:1825:45: warning: passing argument 1 of ‘rte_vhost_enable_guest_notification’ makes integer from pointer without a cast [-Wint-conversion] 
     rte_vhost_enable_guest_notification(dev, idx + VIRTIO_RXQ, 0); 
              ^
In file included from lib/netdev-dpdk.c:56:0: 
/usr/src/dpdk-16.07/x86_64-native-linuxapp-gcc/include/rte_virtio_net.h:89:5: note: expected ‘int’ but argument is of type ‘struct virtio_net *’ 
int rte_vhost_enable_guest_notification(int vid, uint16_t queue_id, int enable); 
    ^
lib/netdev-dpdk.c:1826:45: warning: passing argument 1 of ‘rte_vhost_enable_guest_notification’ makes integer from pointer without a cast [-Wint-conversion] 
     rte_vhost_enable_guest_notification(dev, idx + VIRTIO_TXQ, 0); 
              ^
In file included from lib/netdev-dpdk.c:56:0: 
/usr/src/dpdk-16.07/x86_64-native-linuxapp-gcc/include/rte_virtio_net.h:89:5: note: expected ‘int’ but argument is of type ‘struct virtio_net *’ 
int rte_vhost_enable_guest_notification(int vid, uint16_t queue_id, int enable); 
    ^
In file included from /usr/include/string.h:630:0, 
       from ./lib/string.h:20, 
       from lib/netdev-dpdk.c:19: 
lib/netdev-dpdk.c: In function ‘new_device’: 
lib/netdev-dpdk.c:1906:52: error: ‘IF_NAME_SZ’ undeclared (first use in this function) 
     if (strncmp(dev->ifname, netdev->vhost_id, IF_NAME_SZ) == 0) { 
                ^
lib/netdev-dpdk.c:1915:27: error: ‘VIRTIO_DEV_RUNNING’ undeclared (first use in this function) 
      dev->flags |= VIRTIO_DEV_RUNNING; 
         ^
lib/netdev-dpdk.c: In function ‘destroy_device’: 
lib/netdev-dpdk.c:1953:16: error: dereferencing pointer to incomplete type ‘volatile struct virtio_net’ 
      dev->flags &= ~VIRTIO_DEV_RUNNING; 
       ^
lib/netdev-dpdk.c:1953:28: error: ‘VIRTIO_DEV_RUNNING’ undeclared (first use in this function) 
      dev->flags &= ~VIRTIO_DEV_RUNNING; 
          ^
In file included from /usr/include/string.h:630:0, 
       from ./lib/string.h:20, 
       from lib/netdev-dpdk.c:19: 
lib/netdev-dpdk.c: In function ‘vring_state_changed’: 
lib/netdev-dpdk.c:1996:55: error: ‘IF_NAME_SZ’ undeclared (first use in this function) 
     if (strncmp(dev->ifname, vhost_dev->vhost_id, IF_NAME_SZ) == 0) { 
                ^
lib/netdev-dpdk.c: At top level: 
lib/netdev-dpdk.c:2036:20: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types] 
    .new_device = new_device, 
        ^
lib/netdev-dpdk.c:2036:20: note: (near initialization for ‘virtio_net_device_ops.new_device’) 
lib/netdev-dpdk.c:2037:23: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types] 
    .destroy_device = destroy_device, 
        ^
lib/netdev-dpdk.c:2037:23: note: (near initialization for ‘virtio_net_device_ops.destroy_device’) 
lib/netdev-dpdk.c:2038:28: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types] 
    .vring_state_changed = vring_state_changed 
          ^
lib/netdev-dpdk.c:2038:28: note: (near initialization for ‘virtio_net_device_ops.vring_state_changed’) 
lib/netdev-dpdk.c: In function ‘dpdk_vhost_cuse_class_init’: 
lib/netdev-dpdk.c:2069:11: error: too few arguments to function ‘rte_vhost_driver_register’ 
    err = rte_vhost_driver_register(cuse_dev_name); 
     ^
In file included from lib/netdev-dpdk.c:56:0: 
/usr/src/dpdk-16.07/x86_64-native-linuxapp-gcc/include/rte_virtio_net.h:95:5: note: declared here 
int rte_vhost_driver_register(const char *path, uint64_t flags); 
    ^
lib/netdev-dpdk.c: In function ‘is_vhost_running’: 
lib/netdev-dpdk.c:996:1: warning: control reaches end of non-void function [-Wreturn-type] 
} 
^ 
Makefile:4027: recipe for target 'lib/netdev-dpdk.lo' failed 
make[2]: *** [lib/netdev-dpdk.lo] Error 1 
make[2]: Leaving directory '/usr/src/openvswitch-2.5.0' 
Makefile:4679: recipe for target 'install-recursive' failed 
make[1]: *** [install-recursive] Error 1 
make[1]: Leaving directory '/usr/src/openvswitch-2.5.0' 
Makefile:4985: recipe for target 'install' failed 
make: *** [install] Error 2 

입니다.
DPDK는 dpdk-16.07 OpenVSwitch이 openvswitch-2.5.0 우분투는 어떤 도움을 이해할 수있을 것이다 Ubuntu 16.04.1 LTS

임.
감사합니다.

+0

lib/netdev-dpdk.c : 708 : 11 : 오류 : 'rte_vhost_driver_register'기능에 대한 인수가 너무 적습니다. make가 실패하는 오류입니다. – ElpieKay

+0

@Nagri : 문제를 해결할 수 있었습니까? 그렇다면 답변을 게시 할 수 있습니까? 나는 같은 문제에 직면하고있다. – ghost204nit

+0

@ ghost204nit DPDK를 포기하고 기본적으로 OVS를 사용하기 시작했습니다. Alec Istomin의 대답은 버전 문제를 제안합니다. 아마도 다음 릴리스에서 안정적인 지원을 기다릴 수 있습니다. – Nagri

답변

1

OVS-2.5.0은 dpdk-16.07을 지원하지 않습니다. 8 월 3 일부터 커밋 netdev-dpdk: Add support for DPDK 16.07보다 새로운 OVS 마스터를 사용하십시오. 이 커밋은 OVS에 dpdk-16.07의 지원을 추가합니다.

1

OVS2.5 "stable release"는 dpdk 16.07 (dpdk2.1 만 지원)을 지원하지 않으므로 실패합니다. 다운로드 한 디렉토리 파일 INSTALL.DPDK.md에서 dpdk 버전 지원을 확인할 수 있습니다.

즉, "stable release"옵션 대신 "ovs의 현재 개발"옵션을 사용하여 dpdk16.07에서 ovs2.5를 실행할 수 있습니다. *이

CD는/usr/src에

wget을 http://openvswitch.org/releases/openvswitch- 된 .tar OVS 다운로드에서 압축 된 형식으로 다운로드 할 수있는 안정적인 출시 OVS

:

그래서, this 문서에서, 옵션 다음 건너 뛰기 .gz

tar -zxvf openvswitch-.tar.gz

수출 OVS_DIR =는/usr/src에/openvswitch- *

수행이 :

* 현재의 개발이 '자식'도구를 사용하여 복제 할 수 있습니다 OVS

CD는/usr/src에/

자식 클론 https://github.com/openvswitch/ovs.git

수출은 OVS_DIR =는/usr/src에/OVS *

오류가 해결 될 것입니다 !!