Install virtual IPs via interface name, and use an interface lookup where required
[strongswan.git] / src / libhydra / kernel / kernel_net.h
index 0f2e31c..a6b7686 100644 (file)
@@ -112,14 +112,14 @@ struct kernel_net_t {
         * Virtual IPs are attached to an interface. If an IP is added multiple
         * times, the IP is refcounted and not removed until del_ip() was called
         * as many times as add_ip().
-        * The virtual IP is attached to the interface where the iface_ip is found.
         *
         * @param virtual_ip    virtual ip address to assign
-        * @param iface_ip              IP of an interface to attach virtual IP
+        * @param prefix                prefix length to install with IP address, -1 for auto
+        * @param iface                 interface to install virtual IP on
         * @return                              SUCCESS if operation completed
         */
-       status_t (*add_ip) (kernel_net_t *this, host_t *virtual_ip,
-                                               host_t *iface_ip);
+       status_t (*add_ip) (kernel_net_t *this, host_t *virtual_ip, int prefix,
+                                               char *iface);
 
        /**
         * Remove a virtual IP from an interface.
@@ -127,9 +127,10 @@ struct kernel_net_t {
         * The kernel interface uses refcounting, see add_ip().
         *
         * @param virtual_ip    virtual ip address to assign
+        * @param prefix                prefix length of the IP to uninstall, -1 for auto
         * @return                              SUCCESS if operation completed
         */
-       status_t (*del_ip) (kernel_net_t *this, host_t *virtual_ip);
+       status_t (*del_ip) (kernel_net_t *this, host_t *virtual_ip, int prefix);
 
        /**
         * Add a route.