VPP-1027: DNS name resolver
This patch is a plausible first-cut, suitable for initial testing by
vcl (host stack client library).
Main features;
- recursive name resolution
- multiple ip4/ip6 name servers
- cache size limit enforcement
- currently limited to 65K
- ttl / aging
- static mapping support
- show / clear / debug CLI commands
Binary APIs provided for the following:
- add/delete name servers
- enable/disable the name cache
- resolve a name
To Do list:
- Respond to ip4/ip6 client DNS requests (vs. binary API requests)
- Perf / scale tuning
- map pending transaction ids to pool indices, so the cache
can (greatly) exceed 65K entries
- Security improvements
- Use unpredictable dns transaction IDs, related to previous item
- Make sure that response-packet src ip addresses match the server
- Add binary APIs
- deliver raw response data to clients
- control recursive name resolution
- Documentation
Change-Id: I48c373d5c05d7108ccd814d4055caf8c75ca10b7
Signed-off-by: Dave Barach <dave@barachs.net>
diff --git a/src/vnet.am b/src/vnet.am
index 19b215f..520bee4 100644
--- a/src/vnet.am
+++ b/src/vnet.am
@@ -813,6 +813,22 @@
API_FILES += vnet/span/span.api
########################################
+# DNS proxy, API
+########################################
+libvnet_la_SOURCES += \
+ vnet/dns/dns.c \
+ vnet/dns/dns.h \
+ vnet/dns/dns_packet.h \
+ vnet/dns/reply_node.c \
+ vnet/dns/resolver_process.c
+
+nobase_include_HEADERS += \
+ vnet/dns/dns.api.h \
+ vnet/dns/dns.h
+
+API_FILES += vnet/dns/dns.api
+
+########################################
# Packet generator
########################################