Making the in-kernel DNS resolver handle server lists

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Trond, Anna, Steve,

For kAFS, I'm writing something to allow the in-kernel DNS resolver be able to
ask for a server list (eg. the list of VL servers in an AFS cell) and get back
a list of servers and the addresses associated with each server.

This would be requested by passing an "srv=<version>" option in the callout
info.

The payload handed to the kernel currently looks like something assembled from
the data obtained from a bunch of SRV records that have been further looked up
to A or AAAA.

In the kernel it might get parsed to something like:

	struct address {
		union {
			struct sockaddr_in	sin;
			struct sockaddr_in6	sin6;
		};
	};

	struct server {
		unsigned short		port;
		unsigned short		pref;		// From SRV
		unsigned short		weight;		// From SRV
		unsigned char		ipproto;	// IPPROTO_*
		unsigned int		nr_addrs;	// May be 0
		struct address		*addrs;
	};

	struct server_list {
		unsigned int		nr_servers;
		struct server		servers[];
	};

Is this something that NFS or CIFS (or anything else for that matter) could
find useful?

I also have this loading information from a configuration file as a
backup/override of the DNS.  Could that also be useful to NFS/CIFS?

David



[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux