summaryrefslogtreecommitdiffstats
path: root/common/VIL/l2l3_stack/lib_arp.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/VIL/l2l3_stack/lib_arp.h')
-rw-r--r--common/VIL/l2l3_stack/lib_arp.h46
1 files changed, 9 insertions, 37 deletions
diff --git a/common/VIL/l2l3_stack/lib_arp.h b/common/VIL/l2l3_stack/lib_arp.h
index 9cb0205f..49b35f3d 100644
--- a/common/VIL/l2l3_stack/lib_arp.h
+++ b/common/VIL/l2l3_stack/lib_arp.h
@@ -32,20 +32,9 @@
#define NUM_DESC (get_arp_buf())
#define ARP_BUF_DEFAULT 30000
#define PROBE_TIME 50
+#define ARP_RETRY_COUNT 100
#undef L3_STACK_SUPPORT
-/**
-* A structure for Route table entries of IPv4
-*/
-
-struct lib_arp_route_table_entry {
- uint32_t ip; /**< Ipv4 address*/
- uint32_t mask; /**< mask */
- uint32_t port; /**< Physical port */
- uint32_t nh; /**< next hop */
- uint32_t nh_mask;
-};
-
#define MAX_LOCAL_MAC_ADDRESS 32
#define MAX_PORTS 32
struct arp_cache {
@@ -60,22 +49,9 @@ struct nd_cache {
uint32_t num_nhip;
};
-/**
-* A structure for Route table entires of IPv6
-*
-*/
-struct lib_nd_route_table_entry {
- uint8_t ipv6[16]; /**< Ipv6 address */
- uint8_t depth; /**< Depth */
- uint32_t port; /**< Port */
- uint8_t nhipv6[16]; /**< next hop Ipv6 */
-};
-
uint8_t arp_cache_dest_mac_present(uint32_t out_port);
uint8_t nd_cache_dest_mac_present(uint32_t out_port);
-extern struct lib_nd_route_table_entry lib_nd_route_table[MAX_ND_RT_ENTRY];
-extern struct lib_arp_route_table_entry lib_arp_route_table[MAX_ARP_RT_ENTRY];
-extern struct ether_addr *get_local_link_hw_addr(uint8_t out_port, uint32_t nhip);
+extern struct ether_addr *get_local_cache_hw_addr(uint8_t out_port, uint32_t nhip);
extern struct ether_addr *get_nd_local_link_hw_addr(uint8_t out_port, uint8_t nhip[]);
extern struct arp_cache arp_local_cache[MAX_PORTS];
extern void prefetch(void);
@@ -228,12 +204,6 @@ struct table_nd_entry_data {
} __attribute__ ((packed));
struct arp_data {
- struct lib_arp_route_table_entry
- lib_arp_route_table[MAX_ARP_RT_ENTRY];
- uint8_t lib_arp_route_ent_cnt;
- struct lib_nd_route_table_entry
- lib_nd_route_table[MAX_ARP_RT_ENTRY];
- uint8_t lib_nd_route_ent_cnt;
struct arp_cache arp_local_cache[MAX_PORTS];
struct nd_cache nd_local_cache[MAX_PORTS];
struct ether_addr link_hw_addr[MAX_LOCAL_MAC_ADDRESS];
@@ -257,7 +227,7 @@ struct arp_data {
* 0 if failure, and 1 if success
*/
struct arp_entry_data *get_dest_mac_addr_port(const uint32_t ipaddr,
- uint32_t *phy_port, struct ether_addr *hw_addr);
+ uint32_t phy_port, struct ether_addr *hw_addr);
/**
* To get the destination mac address for IPV6 address
@@ -272,10 +242,6 @@ struct arp_entry_data *get_dest_mac_addr_port(const uint32_t ipaddr,
* @return
* 0 if failure, 1 ifsuccess
*/
-
-struct nd_entry_data *get_dest_mac_address_ipv6_port(uint8_t ipv6addr[], uint32_t *phy_port,
- struct ether_addr *hw_addr,
- uint8_t nhipv6[]);
int arp_queue_unresolved_packet(struct arp_entry_data * arp_data,
struct rte_mbuf * m);
extern void arp_send_buffered_pkts(struct arp_entry_data *ret_arp_data,struct ether_addr *hw_addr, uint8_t port_id);
@@ -524,4 +490,10 @@ uint32_t get_nh(uint32_t, uint32_t *, struct ether_addr *addr);
* next hop ipv6
*/
void get_nh_ipv6(uint8_t ipv6[], uint32_t *port, uint8_t nhipv6[], struct ether_addr *hw_addr);
+
+struct arp_entry_data *get_dest_mac_addr_ipv4(const uint32_t nhip,
+ uint32_t phy_port, struct ether_addr *hw_addr);
+struct nd_entry_data *get_dest_mac_addr_ipv6(uint8_t nhipv6[],
+ uint32_t phy_port, struct ether_addr *hw_addr);
+
#endif