<div dir="ltr"><div>Greetings everyone,</div><div><br></div>I was trying to install OpenFlow module in ndnSIM.<div><br></div><div>I was following OpenFlow installation on NS-3 mentioned </div><div><a href="https://www.nsnam.org/docs/release/3.13/models/html/openflow-switch.html">https://www.nsnam.org/docs/release/3.13/models/html/openflow-switch.html</a></div><div><br></div><div>=======================================================================</div><div><br></div><div><div>Setting top to                           : /home/user/ndnSIM/ns-3 </div><div>Setting out to                           : /home/user/ndnSIM/ns-3/build </div><div>Checking for 'gcc' (C compiler)          : /usr/bin/gcc </div><div>Checking for cc version                  : 5.4.0 </div><div>Checking for 'g++' (C++ compiler)        : /usr/bin/g++ </div><div>Checking supported compiler CXXFLAGS     : -std=c++0x -std=c++11 </div><div>Checking supported optimizations CXXFLAGS : -O0 </div><div>Checking supported debug CXXFLAGS         : -ggdb -g3 </div><div>Checking supported warnings CXXFLAGS      : -Wall -Wno-error=deprecated-declarations -fstrict-aliasing -Wstrict-aliasing </div><div>Checking for compilation flag -Wl,--soname=foo support : ok </div><div>Checking for program 'python'                          : /usr/bin/python </div><div>Checking for python version                            : (2, 7, 12, 'final', 0) </div><div>python-config                                          : /usr/bin/python-config </div><div>Asking python-config for pyembed '--cflags --libs --ldflags' flags : yes </div><div>Testing pyembed configuration                                      : yes </div><div>Asking python-config for pyext '--cflags --libs --ldflags' flags   : yes </div><div>Testing pyext configuration                                        : yes </div><div>Checking for compilation flag -fvisibility=hidden support          : ok </div><div>Checking for compilation flag -Wno-array-bounds support            : ok </div><div>Checking for pybindgen location                                    : ../pybindgen (guessed) </div><div>Checking for python module 'pybindgen'                             : 0.18.0 </div><div>Checking for pybindgen version                                     : 0.18.0 </div><div>Checking for code snippet                                          : yes </div><div>Checking for types uint64_t and unsigned long equivalence          : no </div><div>Checking for code snippet                                          : no </div><div>Checking for types uint64_t and unsigned long long equivalence     : yes </div><div>Checking for the apidefs that can be used for Python bindings      : gcc-LP64 </div><div>Checking for internal GCC cxxabi                                   : complete </div><div>Checking for python module 'pygccxml'                              : 1.0.0 </div><div>Checking for pygccxml version                                      : 1.0.0 </div><div>pygccxml (found 1.0.0) is too old (need 1.9.0) => automatic scanning of API definitions will not be possible</div><div>Checking boost includes                                            : 1_58 </div><div>Checking boost libs                                                : ok </div><div>Checking for boost linkage                                         : ok </div><div>Checking for click location                                        : not found </div><div>Checking for program 'pkg-config'                                  : /usr/bin/pkg-config </div><div>Checking for 'gtk+-2.0' >= 2.12                                    : not found </div><div>Checking for 'libxml-2.0' >= 2.7                                   : yes </div><div>Checking for type uint128_t                                        : not found </div><div>Checking for type __uint128_t                                      : yes </div><div>Checking high precision implementation                             : 128-bit integer (default) </div><div>Checking for header stdint.h                                       : yes </div><div>Checking for header inttypes.h                                     : yes </div><div>Checking for header sys/inttypes.h                                 : not found </div><div>Checking for header sys/types.h                                    : yes </div><div>Checking for header sys/stat.h                                     : yes </div><div>Checking for header dirent.h                                       : yes </div><div>Checking for header stdlib.h                                       : yes </div><div>Checking for header signal.h                                       : yes </div><div>Checking for header pthread.h                                      : yes </div><div>Checking for header stdint.h                                       : yes </div><div>Checking for header inttypes.h                                     : yes </div><div>Checking for header sys/inttypes.h                                 : not found </div><div>Checking for library rt                                            : yes </div><div>Checking for header sys/ioctl.h                                    : yes </div><div>Checking for header net/if.h                                       : yes </div><div>Checking for header net/ethernet.h                                 : yes </div><div>Checking for header linux/if_tun.h                                 : yes </div><div>Checking for header netpacket/packet.h                             : yes </div><div>Checking for NSC location                                          : not found </div><div>Checking for program 'doxygen'                                     : /usr/bin/doxygen </div><div>Checking for program 'tar'                                         : /bin/tar </div><div>Checking for program 'sphinx-build'                                : /usr/bin/sphinx-build </div><div>Checking for std::is_default_constructible                         : yes </div><div>Checking for std::is_nothrow_move_constructible                    : yes </div><div>Checking for std::is_nothrow_move_assignable                       : yes </div><div>Checking for std::to_string                                        : yes </div><div>Checking for std::vector::insert with const_iterator               : yes </div><div>Checking for library pthread                                       : yes </div><div>Checking for 'sqlite3'                                             : yes </div><div>Checking for OpenSSL lib                                           : "OpenSSL 1.0.2g-fips  1 Mar 2016" </div><div>Checking if OpenSSL library works                                  : yes </div><div>Checking for OpenFlow location                                     : /home/user/ndnSIM/openflow/ (given) </div><div>Checking for library dl                                            : yes </div><div>Checking for library xml2                                          : yes </div><div>Checking for library openflow                                      : yes </div><div>Checking for 'sqlite3'                                             : yes </div><div>Checking for header linux/if_tun.h                                 : yes </div><div>Checking for python module 'gtk'                                   : ok </div><div>Checking for python module 'goocanvas'                             : 0.14.1 </div><div>Checking for python module 'pygraphviz'                            : 1.3.1 </div><div>Checking boost includes                                            : 1_58 </div><div>Checking for program 'sudo'                                        : /usr/bin/sudo </div><div>Checking for program 'valgrind'                                    : /usr/bin/valgrind </div><div>Checking for 'gsl'                                                 : yes </div><div>python-config                                                      : not found </div><div>Checking for program 'doxygen'                                     : /usr/bin/doxygen </div><div>---- Summary of optional NS-3 features:</div><div>Build profile                 : debug</div><div>Build directory               : </div><div>BRITE Integration             : not enabled (BRITE not enabled (see option --with-brite))</div><div>DES Metrics event collection  : not enabled (defaults to disabled)</div><div>Emulation FdNetDevice         : enabled</div><div>Examples                      : not enabled (defaults to disabled)</div><div>File descriptor NetDevice     : enabled</div><div>GNU Scientific Library (GSL)  : enabled</div><div>Gcrypt library                : not enabled (libgcrypt not found: you can use libgcrypt-config to find its location.)</div><div>GtkConfigStore                : not enabled (library 'gtk+-2.0 >= 2.12' not found)</div><div>MPI Support                   : not enabled (option --enable-mpi not selected)</div><div>NS-3 Click Integration        : not enabled (nsclick not enabled (see option --with-nsclick))</div><div>NS-3 OpenFlow Integration     : enabled</div><div>Network Simulation Cradle     : not enabled (NSC not found (see option --with-nsc))</div><div>PlanetLab FdNetDevice         : not enabled (PlanetLab operating system not detected (see option --force-planetlab))</div><div>PyViz visualizer              : enabled</div><div>Python API Scanning Support   : not enabled (pygccxml Python module too old)</div><div>Python Bindings               : enabled</div><div>Real Time Simulator           : enabled</div><div>SQlite stats data output      : enabled</div><div>Tap Bridge                    : enabled</div><div>Tap FdNetDevice               : enabled</div><div>Tests                         : not enabled (defaults to disabled)</div><div>Threading Primitives          : enabled</div><div>Use sudo to set suid bit      : not enabled (option --enable-sudo not selected)</div><div>XmlIo                         : enabled</div><div>ndnSIM                        : enabled</div><div>'configure' finished successfully (7.096s)</div></div><div><br></div><div>===========================================================</div><div><br></div><div>However, while linking OpenFlow libraries, I have encountered following error:</div><div><br></div><div><div>[3376/3503] Linking build/src/lte/examples/ns3-dev-lena-deactivate-bearer-debug</div><div>[3377/3503] Linking build/examples/traffic-control/ns3-dev-red-vs-nlred-debug</div><div>[3378/3503] Linking build/examples/wireless/ns3-dev-multirate-debug</div><div>[3379/3503] Linking build/src/openflow/examples/ns3-dev-openflow-switch-debug</div><div>[3380/3503] Linking build/examples/wireless/ns3-dev-power-adaptation-distance-debug</div><div>[3381/3503] Linking build/examples/wireless/ns3-dev-power-adaptation-interference-debug</div><div>[3382/3503] Linking build/src/wave/examples/ns3-dev-vanet-routing-compare-debug</div><div>[3383/3503] Linking build/src/lte/examples/ns3-dev-lena-fading-debug</div><div>[3384/3503] Linking build/src/lte/examples/ns3-dev-lena-frequency-reuse-debug</div></div><div><br></div><div><div><b>./libns3-dev-openflow-debug.so: undefined reference to `update_checksums'</b></div><div><b>collect2: error: ld returned 1 exit status</b></div><div><br></div><div>Waf: Leaving directory `/home/user/ndnSIM/ns-3/build'</div><div><b>Build failed</b></div><div><b> -> task in 'openflow-switch' failed (exit status 1): </b></div><div><b><span style="white-space:pre">      </span>{task 139948845677712: cxxprogram openflow-switch.cc.1.o -> ns3-dev-openflow-switch-debug}</b></div><div><b><br></b></div><div><b>['/usr/bin/g++', '-pthread', 'src/openflow/examples/openflow-switch.cc.1.o', '-o', '/home/user/ndnSIM/ns-3/build/src/openflow/examples/ns3-dev-openflow-switch-debug', '-Wl,-Bstatic', '-Wl,-Bdynamic', '-Wl,--no-as-needed', '-L.', '-L/home/user/ndnSIM/openflow/build/default', '-L/home/user/ndnSIM/openflow/lib', '-lns3-dev-openflow-debug', '-lns3-dev-applications-debug', '-lns3-dev-internet-debug', '-lns3-dev-bridge-debug', '-lns3-dev-mpi-debug', '-lns3-dev-traffic-control-debug', '-lns3-dev-csma-debug', '-lns3-dev-config-store-debug', '-lns3-dev-network-debug', '-lns3-dev-stats-debug', '-lns3-dev-core-debug', '-lrt', '-lpthread', '-lgsl', '-lgslcblas', '-lm', '-lsqlite3', '-lopenflow', '-ldl', '-ldl', '-lxml2', '-lxml2']</b></div></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div>Am I missing some pre-configuration before running ./waf config....... </div><div><br></div><div><br></div><div>Sincerely,</div><div>Karim</div></div>