ubus: fix invalid ipv6-prefix json "ipv6-prefix": [ { "<some ipv6 address>", "preferred-lifetime": 37979, "valid-lifetime": 48779, "prefix-length": 63 } ], json object is missing key, set address as key name. Line up DHCPv4 lease json info by using key name "address" Signed-off-by: Mislav Novakovic <mislav.novakovic@sartura.hr> Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
dhcpv6-ia: keep tentative assignments alive for a short time Assign tentative assignments a lifetime of 60 seconds; this will assure the assignment is seen as valid during lookup when receiving a later REQUEST from the DHCPv6 client. Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
dhcpv6-ia: make assignment lookup more strict Whe doing an assignment lookup do a strict match between the assignment IAID and the IAID received form the client in case the BOUND or TENTATIVE assignment flags are set. This fixes a wrong assignment being returned for a client which uses a different IAID than the IAID used in a previous DHCPv6 exchange. Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
router: improve RFC7084 compliancy Send Router Information Option as well for prefixes with length 64 in order to be compliant with L-3 in RFC7084: An IPv6 CE router must advertise itself as a router for the delegated prefixes using the "Route Information Option". Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
dhcpv6-ia: don't always send reconf accept option (FS#1377) Send reconfigure accept and reconfigure key authentication protocol options only if the client indicates it supports reconfigure accept as descibed in RFC3315 paragraph 21.5. Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
Support muliple RAs on single interface IETF is moving toward implementing IPv6 multihoming by sending multiple RAs on a single interface: - draft-ietf-intarea-provisioning-domains-00 - draft-ietf-rtgwg-enterprise-pa-multihoming-02 odhcpd supports configuration of multiple software interfaces on the same physical interface, which already advertises multiple RAs, but had two issues: - Each RA includes all the prefixes available on the interface. - Replies to sollicits with a single RA. This patch introduces the prefix_filter configuration parameter which allows filtering prefixes that are sent in a given RA, and fixes the sollicit code in order to reply with all the RAs that are configured on a given interface. Signed-off-by: Pierre Pfister <ppfister@cisco.com>
dhcpv4: notify DHCP ACK and RELEASE via ubus If the ubus object has any subscription notify DHCP ACK and DHCP RELEASE events using ubus notifications. Signed-off-by: Borja Salazar <borja.salazar@fon.com> Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
treewide: rework handling of netlink events Rework the handling of netlink events by letting the different modules ndp, ra, dhcpv6 and dhcpv4 install netevent handlers. The installed netevent handlers are called by the netlink logic passing an event indication together with event data. Each netevent handler implements its own event logic; this makes the code more modular and less complex by moving all netlink code to netlink.c While at it rename ia_addr and ia_addr_len into addr6 and addr6_len respectively Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
treewide: add netlink file First step in moving netlink code to netlink.c by moving netlink code from odhcpd.c to netlink.c Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>