summaryrefslogtreecommitdiffstats
path: root/Makefile
AgeCommit message (Expand)AuthorFilesLines
2017-07-20Enable build from dist tarball independent of git.Thomas F Herbert1-6/+11
2017-07-17Fix unlinking of /dev/shm files.Dave Wallace1-2/+7
2017-06-30top-level Makefile improvementsDamjan Marion1-11/+36
2017-06-24Rewrite vppctl in CDamjan Marion1-1/+1
2017-06-02Add option to build sample plugin in top-level makefileDamjan Marion1-12/+23
2017-06-01Support to install dependencies on openSUSE distributionMarco Varlese1-1/+7
2017-05-31Revert "dpdk: build sw cryptodev support with make verify"Peter Mikus1-7/+5
2017-05-30dpdk: build sw cryptodev support with make verifySergio Gonzalez Monroy1-5/+7
2017-05-29Add Debian Jessie support in toplevel makefileDamjan Marion1-4/+11
2017-05-22Disable "make test" for CentOSDamjan Marion1-0/+2
2017-05-20Remove specific versions of some packages.Thomas F Herbert1-4/+5
2017-05-19Add indent to DEB_DEPENDS missing in vagrant box.Dave Wallace1-1/+1
2017-05-09Generate test paths for lib and lib64 subdirectoriesIgor Mikhailov (imichail)1-2/+5
2017-05-09Fix remaining 32-bit compile issuesDamjan Marion1-4/+4
2017-05-06lcov is an EPEL rpm (at least for Centos)Igor Mikhailov (imichail)1-1/+6
2017-05-04Fix RPM_DEPENDS for all rpm distros after 28ea251Igor Mikhailov (imichail)1-3/+1
2017-04-20Extend ebuild to specify "configure" subdir, enable verify for sample-pluginDamjan Marion1-0/+2
2017-04-19disable extended BFD tests in verify jobKlement Sekera1-1/+1
2017-04-19Fix "make dist" to include version number, docouple it from rpm packagingDamjan Marion1-8/+20
2017-04-19make test: python interpreter customizationvagrant1-0/+1
2017-03-29Fix for dependency problem with Fedora 25Thomas F Herbert1-2/+10
2017-03-27Check for missing deps on bootstrap target for Centos and Fedora.Thomas F Herbert1-0/+15
2017-03-27Python-API: debian packaging now depends on python-all (for pybuild)Ole Troan1-1/+1
2017-03-22make test: run all tests in test-cov targetKlement Sekera1-0/+1
2017-03-22make test: support out-of-tree testsKlement Sekera1-2/+3
2017-03-16Add epel-rpm-macros for CentOS/RHEL install-depAlexander Popovsky (apopovsk)1-1/+1
2017-03-15Python API: Change from cPython to CFFI.Ole Troan1-2/+3
2017-03-14Nasm > 2.11.06 required for sw_crypto.Thomas F Herbert1-0/+1
2017-03-10Retire vpp_liteDamjan Marion1-9/+7
2017-03-09make test: add make test-shell[-debug] targetsKlement Sekera1-0/+8
2017-03-08make test: split into basic and extended testsKlement Sekera1-3/+14
2017-02-22Fix LISP and ONE crc marcosFilip Tehlar1-0/+1
2017-02-20dpdk: updated build to automatically download Intel(R) Multi-Buffer Crypto fo...Radu Nicolau1-1/+1
2017-02-06make test: improve test filteringKlement Sekera1-1/+1
2017-02-01Fix issue with apt-get update not being run on Ubuntu 16.04Ed Warnicke1-1/+1
2017-01-31Prep work for Coverity upload processing via JenkinsDave Barach1-0/+4
2017-01-24fix OS_ID test in root MakefileGabriel Ganne1-2/+2
2017-01-20Add dpdk development packagingDamjan Marion1-11/+14
2017-01-17make test: add checkstyle targetKlement Sekera1-0/+4
2017-01-16Add 'make test' to verify jobDamjan Marion1-0/+1
2017-01-16Toplevel Makefile cleanupDamjan Marion1-9/+8
2017-01-10Revert "vppctl: bash completion for vppctl commands"Damjan Marion1-39/+7
2017-01-09vppctl: bash completion for vppctl commandsPadraig Connolly1-7/+39
2017-01-03preserve environment when make install-depGabriel Ganne1-4/+4
2017-01-02fix run-vat pathMatus Fabian1-1/+1
2017-01-01Move java,lua api and remaining plugins to src/Damjan Marion1-17/+4
2016-12-28test: fix paths after source code moveDamjan Marion1-3/+2
2016-12-28Reorganize source tree to use single autotools instanceDamjan Marion1-2/+2
2016-12-21vagrant: Fixing sudo related vagrant errorsRay Kinsella1-1/+1
2016-12-20Remove RPATH from binaries before creating .deb and .rpm packagesDamjan Marion1-2/+2
f running VRs - don't register for VRRP proto if not running */ u16 n_vrs_started; /* hash mapping a VR key to a pool entry */ mhash_t vr_index_by_key; /* hashes mapping sw_if_index and address to a vr index */ uword *vrrp4_arp_lookup; uword *vrrp6_nd_lookup; /* vector of interface data indexed by sw_if_index */ vrrp_intf_t *vrrp_intfs; /* convenience */ vlib_main_t *vlib_main; vnet_main_t *vnet_main; ethernet_main_t *ethernet_main; u32 intf_output_node_idx; } vrrp_main_t; extern vrrp_main_t vrrp_main; extern vlib_node_registration_t vrrp_node; extern vlib_node_registration_t vrrp_periodic_node; /* Periodic function events */ #define VRRP_EVENT_VR_TIMER_UPDATE 1 #define VRRP_EVENT_VR_STOP 2 #define VRRP_EVENT_PERIODIC_ENABLE_DISABLE 3 clib_error_t *vrrp_plugin_api_hookup (vlib_main_t * vm); int vrrp_vr_add_del (u8 is_add, vrrp_vr_config_t * conf); int vrrp_vr_start_stop (u8 is_start, vrrp_vr_key_t * vr_key); extern u8 *format_vrrp_vr (u8 * s, va_list * args); extern u8 *format_vrrp_vr_key (u8 * s, va_list * args); extern u8 *format_vrrp_vr_state (u8 * s, va_list * args); extern u8 *format_vrrp_packet_hdr (u8 * s, va_list * args); void vrrp_vr_timer_set (vrrp_vr_t * vr, vrrp_vr_timer_type_t type); void vrrp_vr_timer_cancel (vrrp_vr_t * vr); void vrrp_vr_transition (vrrp_vr_t * vr, vrrp_vr_state_t new_state, void *data); int vrrp_vr_set_peers (vrrp_vr_key_t * key, ip46_address_t * peers); int vrrp_vr_multicast_group_join (vrrp_vr_t * vr); int vrrp_adv_send (vrrp_vr_t * vr, int shutdown); int vrrp_garp_or_na_send (vrrp_vr_t * vr); u16 vrrp_adv_csum (void *l3_hdr, void *payload, u8 is_ipv6, u16 len); int vrrp_vr_tracking_if_add_del (vrrp_vr_t * vr, u32 sw_if_index, u8 priority, u8 is_add); int vrrp_vr_tracking_ifs_add_del (vrrp_vr_t * vr, vrrp_vr_tracking_if_t * track_ifs, u8 is_add); always_inline void vrrp_vr_skew_compute (vrrp_vr_t * vr) { vrrp_vr_config_t *vrc = &vr->config; vrrp_vr_runtime_t *vrt = &vr->runtime; vrt->skew = (((256 - vrc->priority) * vrt->master_adv_int) / 256); } always_inline void vrrp_vr_master_down_compute (vrrp_vr_t * vr) { vrrp_vr_runtime_t *vrt = &vr->runtime; vrt->master_down_int = (3 * vrt->master_adv_int) + vrt->skew; } always_inline vrrp_vr_t * vrrp_vr_lookup (u32 sw_if_index, u8 vr_id, u8 is_ipv6) { vrrp_main_t *vmp = &vrrp_main; vrrp_vr_key_t key; uword *p; clib_memset (&key, 0, sizeof (key)); key.sw_if_index = sw_if_index; key.vr_id = vr_id; key.is_ipv6 = (is_ipv6 != 0); p = mhash_get (&vmp->vr_index_by_key, &key); if (p) return pool_elt_at_index (vmp->vrs, p[0]); return 0; } always_inline vrrp_vr_t * vrrp_vr_lookup_index (u32 vr_index) { vrrp_main_t *vmp = &vrrp_main; if (pool_is_free_index (vmp->vrs, vr_index)) return 0; return pool_elt_at_index (vmp->vrs, vr_index); } always_inline u32 vrrp_vr_lookup_address (u32 sw_if_index, u8 is_ipv6, void *addr) { vrrp_main_t *vmp = &vrrp_main; uword *p; vrrp4_arp_key_t key4; vrrp6_nd_key_t key6; if (is_ipv6) { key6.sw_if_index = sw_if_index; key6.addr = ((ip6_address_t *) addr)[0]; p = hash_get_mem (vmp->vrrp6_nd_lookup, &key6); } else { key4.sw_if_index = sw_if_index; key4.addr = ((ip4_address_t *) addr)[0]; p = hash_get (vmp->vrrp4_arp_lookup, key4.as_u64); } if (p) return p[0]; return ~0; } always_inline vrrp_intf_t * vrrp_intf_get (u32 sw_if_index) { vrrp_main_t *vrm = &vrrp_main; if (sw_if_index == ~0) return NULL; vec_validate (vrm->vrrp_intfs, sw_if_index); return vec_elt_at_index (vrm->vrrp_intfs, sw_if_index); } always_inline int vrrp_intf_num_vrs (u32 sw_if_index, u8 is_ipv6) { vrrp_intf_t *intf = vrrp_intf_get (sw_if_index); if (intf) return vec_len (intf->vr_indices[is_ipv6]); return 0; } always_inline u8 vrrp_vr_is_ipv6 (vrrp_vr_t * vr) { return ((vr->config.flags & VRRP_VR_IPV6) != 0); } always_inline u8 vrrp_vr_is_unicast (vrrp_vr_t * vr) { return ((vr->config.flags & VRRP_VR_UNICAST) != 0); } always_inline u8 vrrp_vr_is_owner (vrrp_vr_t * vr) { return (vr->config.priority == 255); } always_inline u8 vrrp_vr_n_vr_addrs (vrrp_vr_t * vr) { return vec_len (vr->config.vr_addrs); } always_inline u8 vrrp_vr_n_peer_addrs (vrrp_vr_t * vr) { return vec_len (vr->config.peer_addrs); } always_inline u8 vrrp_vr_accept_mode_enabled (vrrp_vr_t * vr) { return ((vr->config.flags & VRRP_VR_ACCEPT) != 0); } always_inline u32 vrrp_vr_index (vrrp_vr_t * vr) { vrrp_main_t *vmp = &vrrp_main; return vr - vmp->vrs; } always_inline u8 vrrp_vr_priority (vrrp_vr_t * vr) { u8 rv; if (vr->tracking.interfaces_dec < (u32) vr->config.priority) rv = vr->config.priority - vr->tracking.interfaces_dec; else rv = 1; return rv; } #endif /* __included_vrrp_h__ */ /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */