diff options
author | Umut Tezduyar Lindskog <umut.tezduyar@axis.com> | 2014-04-02 21:31:12 +0200 |
---|---|---|
committer | Tom Gundersen <teg@jklm.no> | 2014-04-03 16:00:25 +0200 |
commit | aba496a58acf9d9c61314de71353550e579f85ee (patch) | |
tree | e554123004bba327c3114539142047d4c124f40a /src/systemd/sd-rtnl.h | |
parent | 3e790eae01ce74f94a5233adeab12c64508916e0 (diff) | |
download | systemd-aba496a58acf9d9c61314de71353550e579f85ee.tar.gz |
networkd: smooth transition from ipv4ll to dhcp address
Currently when both ipv4ll and dhcp are enabled, ipv4ll
address (if one has been claimed) is removed when dhcp
address is aquired. This is not the best thing to do
since there might be clients unaware of the removal
trying to communicate.
This patch provides a smooth transition between ipv4ll
and dhcp. If ipv4ll address was claimed [1] before dhcp,
address is marked as deprecated. Deprecated address is still
a valid address and packets can be received on it but address
cannot be selected as a source address. If dhcp lease cannot
be extended, then ipv4ll address is marked as valid again.
[1] If there is no collision, claiming IPv4LL takes between 4 to
7 seconds.
Diffstat (limited to 'src/systemd/sd-rtnl.h')
-rw-r--r-- | src/systemd/sd-rtnl.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/systemd/sd-rtnl.h b/src/systemd/sd-rtnl.h index 80e88e3838..f7f7074ab9 100644 --- a/src/systemd/sd-rtnl.h +++ b/src/systemd/sd-rtnl.h @@ -68,6 +68,7 @@ int sd_rtnl_detach_event(sd_rtnl *nl); /* messages */ int sd_rtnl_message_new_link(sd_rtnl *rtnl, sd_rtnl_message **ret, uint16_t msg_type, int index); +int sd_rtnl_message_new_addr_update(sd_rtnl *rtnl, sd_rtnl_message **ret, int index, unsigned char family); int sd_rtnl_message_new_addr(sd_rtnl *rtnl, sd_rtnl_message **ret, uint16_t msg_type, int index, unsigned char family); int sd_rtnl_message_new_route(sd_rtnl *rtnl, sd_rtnl_message **ret, uint16_t nlmsg_type, @@ -99,6 +100,7 @@ int sd_rtnl_message_append_u32(sd_rtnl_message *m, unsigned short type, uint32_t int sd_rtnl_message_append_in_addr(sd_rtnl_message *m, unsigned short type, const struct in_addr *data); int sd_rtnl_message_append_in6_addr(sd_rtnl_message *m, unsigned short type, const struct in6_addr *data); int sd_rtnl_message_append_ether_addr(sd_rtnl_message *m, unsigned short type, const struct ether_addr *data); +int sd_rtnl_message_append_cache_info(sd_rtnl_message *m, unsigned short type, const struct ifa_cacheinfo *info); int sd_rtnl_message_open_container(sd_rtnl_message *m, unsigned short type); int sd_rtnl_message_open_container_union(sd_rtnl_message *m, unsigned short type, const char *key); @@ -109,6 +111,7 @@ int sd_rtnl_message_read_u8(sd_rtnl_message *m, unsigned short type, uint8_t *da int sd_rtnl_message_read_u16(sd_rtnl_message *m, unsigned short type, uint16_t *data); int sd_rtnl_message_read_u32(sd_rtnl_message *m, unsigned short type, uint32_t *data); int sd_rtnl_message_read_ether_addr(sd_rtnl_message *m, unsigned short type, struct ether_addr *data); +int sd_rtnl_message_read_cache_info(sd_rtnl_message *m, unsigned short type, struct ifa_cacheinfo *info); int sd_rtnl_message_read_in_addr(sd_rtnl_message *m, unsigned short type, struct in_addr *data); int sd_rtnl_message_read_in6_addr(sd_rtnl_message *m, unsigned short type, struct in6_addr *data); int sd_rtnl_message_enter_container(sd_rtnl_message *m, unsigned short type); |