summaryrefslogtreecommitdiffstats
path: root/src/vnet/ethernet/arp.c
AgeCommit message (Expand)AuthorFilesLines
2018-02-15Allow interface types to override glean adjacency behaivourNeale Ranns1-1/+5
2018-01-06VPP-1110 BVI reply ARP that doesn't request BVI loacl IP.zhaoqingling1-0/+6
2017-10-04[aarch64] Fixes CLI crashes on dpaa2 platform.Christophe Fontaine1-1/+1
2017-10-03Repair vlib API socket serverDave Barach1-1/+2
2017-09-25Fix sending GARP/NA on Bonded Interface Active/Backup Link Up/DownJohn Lo1-37/+1
2017-09-22IP-MAC,ND:wildcard events,fix sending multiple eventsEyal Bari1-4/+8
2017-09-18L2BD,ARP-TERM:fix arp query report mechanism+testEyal Bari1-25/+52
2017-09-11replace uint32_t with u32Neale Ranns1-2/+2
2017-09-11FIB table add/delete APINeale Ranns1-34/+93
2017-08-15Support proxy ARP on mirrored TAP interfacesNeale Ranns1-4/+16
2017-08-09VPP-933 VPP crashes when deleting an ARP entryMatthew Smith1-0/+7
2017-08-09ARP reply: use interface to build rewrite stringNeale Ranns1-17/+13
2017-08-08L2 over MPLSNeale Ranns1-2/+2
2017-08-04don't truncate the interface name in 'sh ip arp'Neale Ranns1-1/+1
2017-07-23Improve L2 Input/Output Feature Infrastructure and UsageJohn Lo1-6/+2
2017-07-06Send GARP/NA on bonded intf slave up/down if in active-backup modeJohn Lo1-0/+83
2017-06-21ARP: ignore non-connected routes and non-interface sources when determing if ...Neale Ranns1-30/+97
2017-06-06Packets recieved on VLAN-0 map to the main interfaceNeale Ranns1-164/+30
2017-05-26ARP/ND use path_remove to complement path_addNeale Ranns1-1/+17
2017-05-23ARP/ND entries for the same address on different interfaces (VPP-848)Neale Ranns1-5/+5
2017-05-17VPP-719: Accept ARP replies from VRRP hw addrMatthew Smith1-7/+27
2017-05-17ARP learning fixes (VPP-843)Neale Ranns1-72/+47
2017-04-19Learn IP6 link-local ND entries from NSs sourced from link-local addressNeale Ranns1-0/+3
2017-04-11Remove usued, redundant and deprecated code from lookup.hNeale Ranns1-9/+5
2017-04-07MPLS McastNeale Ranns1-0/+1
2017-04-06Use thread local storage for thread indexDamjan Marion1-1/+1
2017-04-03Adjacency layout change and move to vnet/adjNeale Ranns1-1/+0
2017-03-31ARP/API:protect against identical registrationsEyal Bari1-55/+38
2017-03-30BRIDGE-DOMAIN:enable arp term,mac/ip learning on local intsEyal Bari1-8/+7
2017-03-27Mcast rewrite no memcpyNeale Ranns1-21/+23
2017-03-17Attached hostsNeale Ranns1-18/+54
2017-03-09IMplementation for option to not create a FIB table entry when adding a neigh...Neale Ranns1-25/+36
2017-03-08ARP resilience in the absence of IP config on input and output interfacesNeale Ranns1-0/+6
2017-02-02SNAT: changed source for outbound address FIB entry (VPP-613)Matus Fabian1-5/+2
2017-01-27IP Multicast FIB (mfib)Neale Ranns1-21/+63
2017-01-12Fix ARP on unnumbered interfaces (VPP-583)Neale Ranns1-2/+15
2016-12-28Reorganize source tree to use single autotools instanceDamjan Marion1-0/+2355
n class="cm"> * Callback data */ u64 opaque; } addr_resolution_t; /** * A Translation represents the translation of a VEP to one of a set * of real server addresses */ typedef struct cnat_translation_t_ { /** * Linkage into the FIB graph */ fib_node_t ct_node; /** * The LB used to forward to the backends */ dpo_id_t ct_lb; /** * The Virtual end point */ cnat_endpoint_t ct_vip; /** * The vector of tracked back-ends */ cnat_ep_trk_t *ct_paths; /** * The vector of active tracked back-ends */ cnat_ep_trk_t *ct_active_paths; /** * The ip protocol for the translation */ ip_protocol_t ct_proto; /** * The client object this translation belongs on * INDEX_INVALID if vip is unresolved */ index_t ct_cci; /** * Own index (if copied for trace) */ index_t index; /** * Translation flags */ u8 flags; /** * Type of load balancing */ cnat_lb_type_t lb_type; union { u32 *lb_maglev; }; } cnat_translation_t; extern cnat_translation_t *cnat_translation_pool; extern u8 *format_cnat_translation (u8 * s, va_list * args); /** * create or update a translation * * @param vip The Virtual Endpoint * @param ip_proto The ip protocol to translate * @param backends the backends to choose from * * @return the ID of the translation. used to delete and gather stats */ extern u32 cnat_translation_update (cnat_endpoint_t *vip, ip_protocol_t ip_proto, cnat_endpoint_tuple_t *backends, u8 flags, cnat_lb_type_t lb_type); /** * Delete a translation * * @param id the ID as returned from the create */ extern int cnat_translation_delete (u32 id); /** * Callback function invoked during a walk of all translations */ typedef walk_rc_t (*cnat_translation_walk_cb_t) (index_t index, void *ctx); /** * Walk/visit each of the translations */ extern void cnat_translation_walk (cnat_translation_walk_cb_t cb, void *ctx); /** * Purge all the trahslations */ extern int cnat_translation_purge (void); /** * Add an address resolution request */ extern void cnat_translation_watch_addr (index_t cti, u64 opaque, cnat_endpoint_t * ep, cnat_addr_resol_type_t type); /** * Cleanup matching addr resolution requests */ extern void cnat_translation_unwatch_addr (u32 cti, cnat_addr_resol_type_t type); /** * Register a call back for endpoint->address resolution */ typedef void (*cnat_if_addr_add_cb_t) (addr_resolution_t *ar, ip_address_t *address, u8 is_del); extern void cnat_translation_register_addr_add_cb (cnat_addr_resol_type_t typ, cnat_if_addr_add_cb_t fn); /* * Data plane functions */ extern clib_bihash_8_8_t cnat_translation_db; static_always_inline cnat_translation_t * cnat_translation_get (index_t cti) { return (pool_elt_at_index (cnat_translation_pool, cti)); } static_always_inline cnat_translation_t * cnat_find_translation (index_t cti, u16 port, ip_protocol_t proto) { clib_bihash_kv_8_8_t bkey, bvalue; u64 key; int rv; key = ((u64) proto << 24) | port; key = key << 32 | (u32) cti; bkey.key = key; rv = clib_bihash_search_inline_2_8_8 (&cnat_translation_db, &bkey, &bvalue); if (!rv) return (pool_elt_at_index (cnat_translation_pool, bvalue.value)); return (NULL); } /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */ #endif