mirror of
https://github.com/openvswitch/ovs
synced 2025-10-25 15:07:05 +00:00
lib: add ipv6 helper functions for tnl_config
These functions will be used by the next patches. Signed-off-by: Jiri Benc <jbenc@redhat.com> Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@redhat.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
This commit is contained in:
1
AUTHORS
1
AUTHORS
@@ -92,6 +92,7 @@ Jeremy Stribling strib@nicira.com
|
|||||||
Jeroen van Bemmel jvb127@gmail.com
|
Jeroen van Bemmel jvb127@gmail.com
|
||||||
Jesse Gross jesse@nicira.com
|
Jesse Gross jesse@nicira.com
|
||||||
Jing Ai jinga@google.com
|
Jing Ai jinga@google.com
|
||||||
|
Jiri Benc jbenc@redhat.com
|
||||||
Joe Perches joe@perches.com
|
Joe Perches joe@perches.com
|
||||||
Joe Stringer joestringer@nicira.com
|
Joe Stringer joestringer@nicira.com
|
||||||
Jonathan Vestin jonavest@kau.se
|
Jonathan Vestin jonavest@kau.se
|
||||||
|
|||||||
11
lib/smap.c
11
lib/smap.c
@@ -95,6 +95,17 @@ smap_add_format(struct smap *smap, const char *key, const char *format, ...)
|
|||||||
hash_bytes(key, key_len, 0));
|
hash_bytes(key, key_len, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Adds 'key' paired with a string representation of 'addr'. It is the
|
||||||
|
* caller's responsibility to avoid duplicate keys if desirable. */
|
||||||
|
void
|
||||||
|
smap_add_ipv6(struct smap *smap, const char *key, struct in6_addr *addr)
|
||||||
|
{
|
||||||
|
char buf[INET6_ADDRSTRLEN];
|
||||||
|
|
||||||
|
inet_ntop(AF_INET6, addr, buf, sizeof buf);
|
||||||
|
smap_add(smap, key, buf);
|
||||||
|
}
|
||||||
|
|
||||||
/* Searches for 'key' in 'smap'. If it does not already exists, adds it.
|
/* Searches for 'key' in 'smap'. If it does not already exists, adds it.
|
||||||
* Otherwise, changes its value to 'value'. */
|
* Otherwise, changes its value to 'value'. */
|
||||||
void
|
void
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ struct smap_node *smap_add_nocopy(struct smap *, char *, char *);
|
|||||||
bool smap_add_once(struct smap *, const char *, const char *);
|
bool smap_add_once(struct smap *, const char *, const char *);
|
||||||
void smap_add_format(struct smap *, const char *key, const char *, ...)
|
void smap_add_format(struct smap *, const char *key, const char *, ...)
|
||||||
OVS_PRINTF_FORMAT(3, 4);
|
OVS_PRINTF_FORMAT(3, 4);
|
||||||
|
void smap_add_ipv6(struct smap *, const char *, struct in6_addr *);
|
||||||
void smap_replace(struct smap *, const char *, const char *);
|
void smap_replace(struct smap *, const char *, const char *);
|
||||||
|
|
||||||
void smap_remove(struct smap *, const char *);
|
void smap_remove(struct smap *, const char *);
|
||||||
|
|||||||
@@ -136,6 +136,15 @@ set_dscp(int fd, int family, uint8_t dscp)
|
|||||||
return retval ? sock_errno() : 0;
|
return retval ? sock_errno() : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Checks whether 'host_name' is an IPv4 or IPv6 address. It is assumed
|
||||||
|
* that 'host_name' is valid. Returns false if it is IPv4 address, true if
|
||||||
|
* it is IPv6 address. */
|
||||||
|
bool
|
||||||
|
addr_is_ipv6(const char *host_name)
|
||||||
|
{
|
||||||
|
return strchr(host_name, ':') != NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/* Translates 'host_name', which must be a string representation of an IP
|
/* Translates 'host_name', which must be a string representation of an IP
|
||||||
* address, into a numeric IP address in '*addr'. Returns 0 if successful,
|
* address, into a numeric IP address in '*addr'. Returns 0 if successful,
|
||||||
* otherwise a positive errno value. */
|
* otherwise a positive errno value. */
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ void xset_nonblocking(int fd);
|
|||||||
void setsockopt_tcp_nodelay(int fd);
|
void setsockopt_tcp_nodelay(int fd);
|
||||||
int set_dscp(int fd, int family, uint8_t dscp);
|
int set_dscp(int fd, int family, uint8_t dscp);
|
||||||
|
|
||||||
|
bool addr_is_ipv6(const char *host_name);
|
||||||
int lookup_ip(const char *host_name, struct in_addr *address);
|
int lookup_ip(const char *host_name, struct in_addr *address);
|
||||||
int lookup_ipv6(const char *host_name, struct in6_addr *address);
|
int lookup_ipv6(const char *host_name, struct in6_addr *address);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user