• David Howells's avatar
    afs: Provide a way to configure address priorities · f94f70d3
    David Howells authored
    AFS servers may have multiple addresses, but the client can't easily judge
    between them as to which one is best.  For instance, an address that has a
    larger RTT might actually have a better bandwidth because it goes through a
    switch rather than being directly connected - but we can't work this out
    dynamically unless we push through sufficient data that we can measure it.
    
    To allow the administrator to configure this, add a list of preference
    weightings for server addresses by IPv4/IPv6 address or subnet and allow
    this to be viewed through a procfile and altered by writing text commands
    to that same file.  Preference rules can be added/updated by:
    
    	echo "add <proto> <addr>[/<subnet>] <prior>" >/proc/fs/afs/addr_prefs
    	echo "add udp 1.2.3.4 1000" >/proc/fs/afs/addr_prefs
    	echo "add udp 192.168.0.0/16 3000" >/proc/fs/afs/addr_prefs
    	echo "add udp 1001:2002:0:6::/64 4000" >/proc/fs/afs/addr_prefs
    
    and removed by:
    
    	echo "del <proto> <addr>[/<subnet>]" >/proc/fs/afs/addr_prefs
    	echo "del udp 1.2.3.4" >/proc/fs/afs/addr_prefs
    
    where the priority is a number between 0 and 65535.
    
    The list is split between IPv4 and IPv6 addresses and each sublist is kept
    in numerical order, with rules that would otherwise match but have
    different subnet masking being ordered with the most specific submatch
    first.
    
    A subsequent patch will apply these rules.
    Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
    cc: Marc Dionne <marc.dionne@auristor.com>
    cc: linux-afs@lists.infradead.org
    f94f70d3
main.c 5.99 KB