Blame TODO

Packit Service 5956c7
Whatever you want !
Packit Service 5956c7
Packit Service 5956c7
Real servers
Packit Service 5956c7
Add quorum_weight, defaults to weight. May want to set different between quorum and IPVS weight
Packit Service 5956c7
Packit Service 5956c7
Rationalise use of timer_now()/gettimeofday()/set_time_now()
Packit Service 5956c7
Packit Service 5956c7
Packit Service 5956c7
virtual route:
Packit Service 5956c7
1. How do we handle
Packit Service 5956c7
     virtual_routes {
Packit Service 5956c7
            192.168.210.0/24 via 10.1.0.1
Packit Service 5956c7
     }
Packit Service 5956c7
     if there is no route to 10.1.0.1? If we go to fault state if it cannot
Packit Service 5956c7
     be installed when attempt to transition to master, how do we know to transiton
Packit Service 5956c7
     out of fault state.
Packit Service 5956c7
Packit Service 5956c7
Packit Service 5956c7
IPVS
Packit Service 5956c7
1. Can we have an IPv4 fwmark and specify tunnel to IPv6, and vice versa etc.
Packit Service 5956c7
   What does ipvsadm do?
Packit Service 5956c7
2. Sort out IP_VS_SO vs LVS_CMD...
Packit Service 5956c7
3. Make sure log/email messages contain relevant info re VS -> RS. See FMT_CHK
Packit Service 5956c7
Packit Service 5956c7
The following are still outstanding from the ideas for what became v2.0.0:
Packit Service 5956c7
Packit Service 5956c7
	* Sort out termination in vrrp and checker - stop_vrrp/check, and phase2
Packit Service 5956c7
	    are inconsistent between vrrp and checker. What about bfd?
Packit Service 5956c7
	* A route with multiple nexthops will only be deleted if all interfaces
Packit Service 5956c7
	    are down. Each nexthop needs to record the interface, and only remove
Packit Service 5956c7
	    once all down
Packit Service 5956c7
	* Don't add RTNMGRP_IPV4_ADDR/IPV6_ADDR if not monitoring one of those
Packit Service 5956c7
	    families
Packit Service 5956c7
	* May want to stop VS down at start for alpha mode RSs (except SNMP)
Packit Service 5956c7
	* Rate limit respawning if a child process dies
Packit Service 5956c7
	* Have a socket to connect to for receiving notifications. A process
Packit Service 5956c7
	    can register for what notifications it wants to receive.
Packit Service 5956c7
	* Allow variable parameters to be passed to scripts - see issue #837
Packit Service 5956c7
	* Make tarball include git version if not a tag
Packit Service 5956c7
	* If an address owner recovers from fault, transition directly to
Packit Service 5956c7
	  master
Packit Service 5956c7
	* If configuration_state=MASTER && !OWNER, transition to master after
Packit Service 5956c7
	  1 * advert_int + skew. Sort out all initialisation around states
Packit Service 5956c7
	* Split vrrp_snmp.c into vrrp_snmp_keepalived.c vrrp_snmp_rfcv2.c and
Packit Service 5956c7
	  vrrp_snmp_rfcv3.c
Packit Service 5956c7
	* Only send correct type of trap, and respond to correct SNMP version,
Packit Service 5956c7
	  controlled by config, defaults to type of instance. Flags snmp_v2 and
Packit Service 5956c7
	  snmp_v3 to force other, or both.
Packit Service 5956c7
	* Ensure unicast peers groups check source address of received advert
Packit Service 5956c7
	  so that the same VRID can be used between different peer groups on the
Packit Service 5956c7
	  same interface.
Packit Service 5956c7
	* Add process checking:
Packit Service 5956c7
	    Add track_process for vrrp instances
Packit Service 5956c7
	    Add PROCESS_CHECK for checkers
Packit Service 5956c7
	    - Find PID and remember it. If PID has gone, try and find new pid
Packit Service 5956c7
	    Look at how pidof/killall find processes
Packit Service 5956c7
	* Allow dynamic definitions, e.g. $_VI_NAME
Packit Service 5956c7
	    Also $*_INSTANCE net_namspace $_INSTANCE
Packit Service 5956c7
	    so $* means only do if $_INSTANCE not blank. */
Packit Service 5956c7
	* ng-scheduler
Packit Service 5956c7
Packit Service 5956c7
Packit Service 5956c7
Other issues awaiting resolution:
Packit Service 5956c7
Packit Service 5956c7
ipvs_group_range_cmd() appears nonsense, and inet_stor returning a uint8_t
Packit Service 5956c7
doesn't work for IPv6. The virtual_service_entry_t thing needs range to be
Packit Service 5956c7
uint32_t. Why would mask be 0xffffffff for IPv6?
Packit Service 5956c7
Packit Service 5956c7
ip_vs_daemon_kern vs /usr/include/linux/ip_vs.h ip_vs_daemon_user
Packit Service 5956c7
Packit Service 5956c7
vrrp_timer_fd should return 0 if an fd's timer is in the past?
Packit Service 5956c7
Packit Service 5956c7
Make vrrp->send_buffer a single buffer for all
Packit Service 5956c7
Packit Service 5956c7
Check timers passto to thread_... functions are reasonable, and stacktrace if not.
Packit Service 5956c7
Packit Service 5956c7
In function socket_state, should thread_add_write use timer_long() or -timer_long()
Packit Service 5956c7
Packit Service 5956c7
vrrp_timer_fd() - see comment
Packit Service 5956c7
Packit Service 5956c7
In thread functions with a timer, ensure not > LONG_MAX (or even some lower value);
Packit Service 5956c7
Packit Service 5956c7
Change tcp_socket_state etc to socket_state etc
Packit Service 5956c7
Packit Service 5956c7
Add noreturn function attribute on stop_vrrp/check
Packit Service 5956c7
Packit Service 5956c7
bin/genhash -s 2001:470:69dd:35::188 --port 80 -u /Harriet/     # works, but
Packit Service 5956c7
bin/genhash -s 2001:470:69dd:35::188 --port 80 -u /Harriet/     # -S doesn't
Packit Service 5956c7
								# but -S is OK with IPv4 address
Packit Service 5956c7
Packit Service 5956c7
in ipvswrapper.c, get rid of static srule etc and make them procedure local and pass as parameters
Packit Service 5956c7
Packit Service 5956c7
Stop passing base_ifp to netlink3_set_interface_parameters() etc
Packit Service 5956c7
Packit Service 5956c7
ipsecah issues
Packit Service 5956c7
==============
Packit Service 5956c7
1. sync and vmac ignore counter
Packit Service 5956c7
Packit Service 5956c7
2. Start up just after master dies, but have lowest priority so become master with counter == 1
Packit Service 5956c7
Packit Service 5956c7
3. cycle won't happen
Packit Service 5956c7
Packit Service 5956c7
4. In vrrp_backup, don't check auth type matches
Packit Service 5956c7
Packit Service 5956c7
5. ? if cycle becomes set, we must become backup. How do we get out of state?
Packit Service 5956c7
Packit Service 5956c7
epoll
Packit Service 5956c7
=====
Packit Service 5956c7
Use timerfd (see timerfd_create(2)) for microsecond timing with epoll, and do not bother with its timeout.
Packit Service 5956c7
If not available, then simply use the epoll timer.
Packit Service 5956c7
Packit Service 5956c7
Optimise calls to timer_now() and see set_time_now()
Packit Service 5956c7
====================================================
Packit Service 5956c7
After select completes, get time. Before calculating next
Packit Service 5956c7
select expire time, get time again.
Packit Service 5956c7
To test time processing, save time after select and log time taken
Packit Service 5956c7
before next select. Also initialise timer at startup.
Packit Service 5956c7
Packit Service 5956c7
Add api
Packit Service 5956c7
=======
Packit Service 5956c7
Packit Service 5956c7
Add pipe for updates
Packit Service 5956c7
====================
Packit Service 5956c7
track_script like for absolute or relative priority
Packit Service 5956c7
Packit Service 5956c7
Upstream issues
Packit Service 5956c7
===============
Packit Service 5956c7
Packit Service 5956c7
1. Kernel. Socket receive buffers growing to fill memory
Packit Service 5956c7
   See issue #839. If the following setting are in place:
Packit Service 5956c7
net.core.rmem_default = 37748736
Packit Service 5956c7
net.core.rmem_max = 37748736
Packit Service 5956c7
   and vrrp_tx_bufs_policy NO_SEND_RX is configured, then
Packit Service 5956c7
   all system memory can be consumed. Why is it not limited
Packit Service 5956c7
   to 37748736 bytes?
Packit Service 5956c7
Packit Service 5956c7
2. Kernel. Corruption when netlink sends status of large number
Packit Service 5956c7
   of links - see issues #392/#803.
Packit Service 5956c7
   When using default socket receive buffer size, and have 500
Packit Service 5956c7
   vmac interfaces configured on a physical interface and the
Packit Service 5956c7
   physical interface is downed, lots of netlink messages are
Packit Service 5956c7
   received, and we get an ENOBUFS. However, after that we then
Packit Service 5956c7
   see a repeat of some of the earlier messages, so it looks like
Packit Service 5956c7
   a circular buffer corruption. Running ip -ts monitor link addr route
Packit Service 5956c7
   we see precisely the same problem at exactly the same message,
Packit Service 5956c7
   although which message it is varies each time.
Packit Service 5956c7
Packit Service 5956c7
3. net-snmp. Display-hint only works on indices.
Packit Service 5956c7
   See issue #866.
Packit Service 5956c7
   # snmpwalk -v2c -c public localhost KEEPALIVED-MIB::virtualServerAddress
Packit Service 5956c7
   KEEPALIVED-MIB::virtualServerAddress.1 = STRING: "
Packit Service 5956c7
0,"
Packit Service 5956c7
   The address is attempted to be output as text, rather than using
Packit Service 5956c7
   the display hint