ovn-util: Add solicited node addresses to ipv6_netaddr.
[cascardo/ovs.git] / ovn / lib / ovn-util.h
index d23f4af..e9f3ec2 100644 (file)
 
 #include "lib/packets.h"
 
-struct sbrec_port_binding;
+struct nbrec_logical_router_port;
 
 struct ipv4_netaddr {
-    ovs_be32 addr;
-    unsigned int plen;
+    ovs_be32 addr;            /* 192.168.10.123 */
+    ovs_be32 mask;            /* 255.255.255.0 */
+    ovs_be32 network;         /* 192.168.10.0 */
+    unsigned int plen;        /* CIDR Prefix: 24. */
+
+    char *addr_s;             /* "192.168.10.123" */
+    char *network_s;          /* "192.168.10.0" */
+    char *bcast_s;            /* "192.168.10.255" */
 };
 
 struct ipv6_netaddr {
-    struct in6_addr addr;
-    unsigned int plen;
+    struct in6_addr addr;     /* fc00::1 */
+    struct in6_addr mask;     /* ffff:ffff:ffff:ffff:: */
+    struct in6_addr sn_addr;  /* ff02:1:ff00::1 */
+    struct in6_addr network;  /* fc00:: */
+    unsigned int plen;        /* CIDR Prefix: 64 */
+
+    char *addr_s;             /* "fc00::1" */
+    char *sn_addr_s;          /* "ff02:1:ff00::1" */
+    char *network_s;          /* "fc00::" */
 };
 
 struct lport_addresses {
+    char *ea_s;
     struct eth_addr ea;
     size_t n_ipv4_addrs;
     struct ipv4_netaddr *ipv4_addrs;
@@ -38,11 +52,11 @@ struct lport_addresses {
     struct ipv6_netaddr *ipv6_addrs;
 };
 
-bool
-extract_lsp_addresses(char *address, struct lport_addresses *laddrs,
-                      bool store_ipv6);
 
-char *
-alloc_nat_zone_key(const struct sbrec_port_binding *port_binding,
-                   const char *type);
+bool extract_lsp_addresses(char *address, struct lport_addresses *);
+bool extract_lrp_networks(const struct nbrec_logical_router_port *,
+                          struct lport_addresses *);
+void destroy_lport_addresses(struct lport_addresses *);
+
+char *alloc_nat_zone_key(const char *key, const char *type);
 #endif