summaryrefslogtreecommitdiffstats
path: root/extras/rpm
AgeCommit message (Expand)AuthorFilesLines
2018-11-23Fix permission for vpp_papiOnong Tayeng1-1/+1
2018-09-26rpm: Fix the spec file to look into right directoriesMohsin Kazmi2-4/+4
2018-09-13Fix: vppapigen make build fails on fresh installPaul Vinciguerra1-2/+2
2018-09-12Always use 'lib' instead of 'lib64'Damjan Marion2-6/+6
2018-09-07update regex used by rpm build to find lib filesMatthew Smith1-1/+1
2018-09-02Switch to cmakeDamjan Marion2-8/+0
2018-08-30SUSE: fix spec to generate RPMsMarco Varlese1-27/+27
2018-08-21SUSE: rpm-packaging fixesMarco Varlese2-2/+9
2018-08-07PAPI: Move unit tests to fix packaging issues.Ole Troan1-1/+0
2018-08-03PAPI: Union pad at the end of short fields instead of at head.Ole Troan1-0/+1
2018-08-02Temporrary disable japi packaging for opensuseDamjan Marion1-26/+26
2018-08-01Move java api to extras/Damjan Marion2-6/+6
2018-07-10openSUSE: spec file update to reflect latest depsMarco Varlese1-5/+13
2018-06-22Python API: Add enum and union support.Ole Troan2-2/+2
2018-06-18Revert "Python API: Add enum and union support."Ole Trøan2-2/+2
2018-06-17Python API: Add enum and union support.Ole Troan2-2/+2
2018-05-19MLX DPDK glue: exclude dependency on OFED librariesIgor Mikhailov (imichail)1-0/+1
2018-05-04Add python lex and yacc to spec file build requirements.Thomas F Herbert1-3/+3
2018-04-08Restore building of debuginfo RPMsThomas F Herbert1-10/+2
2018-04-08Remove subunit from Centos requirements.Thomas F Herbert1-1/+2
2018-04-06Remove mbedtls from build requirement for CentosThomas F Herbert1-1/+2
2018-03-02Add RPM buildtime dependency on mbedtls-develMatthew Smith1-0/+1
2018-02-28Adjust vpp-selinux-policy postinstallMatthew Smith1-1/+1
2018-01-31RPMS: Also install C.py, JSON.py for vppapipgen.Jon Loeliger1-0/+3
2018-01-30VPP-899: Run VPP under SELinuxBilly McFall1-1/+76
2018-01-23VPPAPIGEN: vppapigen replacement in Python PLY.Ole Troan1-0/+1
2018-01-18dpdk plugin depends on numactl-libsGabriel Ganne1-1/+1
2017-12-04Optimize RPM build processRenato Botelho do Couto2-21/+18
2017-11-30Cleanup and simplifyMarco Varlese1-31/+13
2017-11-29Using $(CURDIR) to fix the absolute path issueMarco Varlese1-1/+1
2017-11-17subunit is required on centos as well as fedoraGabriel Ganne1-2/+0
2017-11-08VOM rpm build fixesNeale Ranns1-0/+1
2017-11-05dpdk: build nasm from sourceSergio Gonzalez Monroy1-3/+0
2017-10-14Fix bug with temporary directory when building rpms.Thomas F Herbert1-1/+1
2017-10-14Deps added to Makefile must also be in spec file.Thomas F Herbert1-0/+4
2017-10-12Add support for packaging SUSE RPMs.Marco Varlese2-0/+384
2017-09-21Unpack into temporary directory with longer name.Thomas F Herbert1-2/+10
2017-09-20Use openssl 1.0 compat RPM for Fedora 26 and newer.Thomas F Herbert1-1/+4
2017-09-15VPP-958: RPM Update wipes out local changes to 80-vpp.confBilly McFall1-2/+2
2017-09-12Add option to build without multi-buffer crypto.Thomas F Herbert1-2/+10
2017-08-26Add Build Requirements from Makefile to spec file.Thomas F Herbert1-6/+23
2017-08-08Create source rpm.Thomas F Herbert2-5/+21
2017-07-27Use relative path to vpp.service.Thomas F Herbert1-1/+1
2017-07-12Decrease steps necessary to upgrading RPM packages fixedKristina Nevolnikova1-16/+22
2017-07-05VPP-900: VPP is released under the Apache 2.0 License (ASL 2.0). Update RPM s...Billy McFall1-1/+1
2017-05-20Restore possibility to build vpp in debug mode for rpmsIgor Mikhailov (imichail)1-2/+6
2017-04-19Fix "make dist" to include version number, docouple it from rpm packagingDamjan Marion3-0/+343
= table_id; ASSERT (lt->lt_table_id == table_id); if (0 == lt->lt_locks[LISP_GPE_TENANT_LOCK_L3_IFACE]) { /* create the l3 interface since there are currently no users of it */ lt->lt_l3_sw_if_index = lisp_gpe_add_l3_iface (&lisp_gpe_main, vni, table_id, with_default_route); } lt->lt_locks[LISP_GPE_TENANT_LOCK_L3_IFACE]++; return (lt->lt_l3_sw_if_index); } /** * @brief Release the lock held on the tenant's L3 interface */ void lisp_gpe_tenant_l3_iface_unlock (u32 vni) { lisp_gpe_tenant_t *lt; lt = lisp_gpe_tenant_find (vni); if (NULL == lt) { clib_warning ("No tenant for VNI %d", vni); return; } if (0 == lt->lt_locks[LISP_GPE_TENANT_LOCK_L3_IFACE]) { clib_warning ("No L3 interface for tenant VNI %d", vni); return; } lt->lt_locks[LISP_GPE_TENANT_LOCK_L3_IFACE]--; if (0 == lt->lt_locks[LISP_GPE_TENANT_LOCK_L3_IFACE]) { /* the last user has gone, so delete the l3 interface */ lisp_gpe_del_l3_iface (&lisp_gpe_main, vni, lt->lt_table_id); } /* * If there are no more locks on any tenant managed resource, then * this tenant is toast. */ lisp_gpe_tenant_delete_if_empty (lt); } /** * @brief Add/create and lock a new or find and lock the existing L2 * interface for the tenant * * @paran vni The tenant's VNI * @param table_id the Tenant's L2 Bridge Domain ID. * * @return the SW IF index of the L2 interface */ u32 lisp_gpe_tenant_l2_iface_add_or_lock (u32 vni, u32 bd_id) { lisp_gpe_tenant_t *lt; lt = lisp_gpe_tenant_find_or_create_i (vni); if (NULL == lt) { clib_warning ("No tenant for VNI %d", vni); return ~0; } if (~0 == lt->lt_bd_id) lt->lt_bd_id = bd_id; ASSERT (lt->lt_bd_id == bd_id); if (0 == lt->lt_locks[LISP_GPE_TENANT_LOCK_L2_IFACE]) { /* create the l2 interface since there are currently no users of it */ lt->lt_l2_sw_if_index = lisp_gpe_add_l2_iface (&lisp_gpe_main, vni, bd_id); } lt->lt_locks[LISP_GPE_TENANT_LOCK_L2_IFACE]++; return (lt->lt_l2_sw_if_index); } /** * @brief Release the lock held on the tenant's L3 interface */ void lisp_gpe_tenant_l2_iface_unlock (u32 vni) { lisp_gpe_tenant_t *lt; lt = lisp_gpe_tenant_find (vni); if (NULL == lt) { clib_warning ("No tenant for VNI %d", vni); return; } if (0 == lt->lt_locks[LISP_GPE_TENANT_LOCK_L2_IFACE]) { clib_warning ("No L2 interface for tenant VNI %d", vni); return; } lt->lt_locks[LISP_GPE_TENANT_LOCK_L2_IFACE]--; if (0 == lt->lt_locks[LISP_GPE_TENANT_LOCK_L2_IFACE]) { /* the last user has gone, so delete the l2 interface */ lisp_gpe_del_l2_iface (&lisp_gpe_main, vni, lt->lt_bd_id); } /* * If there are no more locks on any tenant managed resource, then * this tenant is toast. */ lisp_gpe_tenant_delete_if_empty (lt); } /** * @brief get a const pointer to the tenant object */ const lisp_gpe_tenant_t * lisp_gpe_tenant_get (u32 index) { return (pool_elt_at_index (lisp_gpe_tenant_pool, index)); } /** * @brief Flush/delete ALL the tenants */ void lisp_gpe_tenant_flush (void) { lisp_gpe_tenant_t *lt; /* *INDENT-OFF* */ pool_foreach(lt, lisp_gpe_tenant_pool, ({ lisp_gpe_tenant_l2_iface_unlock(lt->lt_vni); lisp_gpe_tenant_l3_iface_unlock(lt->lt_vni); })); /* *INDENT-ON* */ } /** * @brif Show/display one tenant */ static u8 * format_lisp_gpe_tenant (u8 * s, va_list * ap) { const lisp_gpe_tenant_t *lt = va_arg (*ap, lisp_gpe_tenant_t *); s = format (s, "VNI:%d ", lt->lt_vni); if (lt->lt_table_id != ~0) { s = format (s, "VRF:%d ", lt->lt_table_id); s = format (s, "L3-SW-IF:%d ", lt->lt_l3_sw_if_index); } if (lt->lt_bd_id != ~0) { s = format (s, "BD-ID:%d ", lt->lt_bd_id); s = format (s, "L2-SW-IF:%d ", lt->lt_l2_sw_if_index); } return (s); } /** * @brief CLI command to show LISP-GPE tenant. */ static clib_error_t * lisp_gpe_tenant_show (vlib_main_t * vm, unformat_input_t * input, vlib_cli_command_t * cmd) { lisp_gpe_tenant_t *lt; /* *INDENT-OFF* */ pool_foreach (lt, lisp_gpe_tenant_pool, ({ vlib_cli_output (vm, "%U", format_lisp_gpe_tenant, lt); })); /* *INDENT-ON* */ return 0; } /* *INDENT-OFF* */ VLIB_CLI_COMMAND (lisp_gpe_tenant_command) = { .path = "show gpe tenant", .short_help = "show gpe tenant", .function = lisp_gpe_tenant_show, }; /* *INDENT-ON* */ /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */