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