Re: Better network reporting from FreeBSD VM via xenstore

From: Ondra Knezour <knezour_at_weboutsourcing.cz>
Date: Mon, 08 Aug 2022 12:56:29 UTC
Dne 08.08.2022 v 14:30 Roger Pau Monné napsal(a):
> On Fri, Aug 05, 2022 at 03:43:55PM +0200, Ondra Knezour wrote:
>> Hello all,
>>
>> it seems to me that there is some room to improve how are things about
>> networking reported from FreeBSD VM to the hypervisor.
>>
>> Now we have function xe_ip_if() in /usr/local/sbin/xe-update-guest-attrs
>> which just grep for xn interfaces, read one IP address for each which is
>> eventually written to the /var/cache/xenstore/attr/ethNUMBER/ip
>>
>> First - from where the ip node comes? I didn't find any such in
>> https://xenbits.xen.org/docs/unstable/misc/xenstore-paths.html
> I think this is all specific to XenServer (a.k.a. Citrix Hypervisor)
> and XCP (as being part of the xe-guest-utilities package), but not
> used by upstream Xen toolstack (xl), and no one cared to add the used
> paths to the upstream documents.
>
>> We have
>>
>> [ snip }
 >> But on Linux
>> [ snip ]
 >>
>> You seem to use different commands on FreeBSD and Linux to get the
>> entries (`xenstore ls attr` vs `xenstore ls | grep attr -A 50`), so
>> it's not really a fair comparison I would say.
Only for brevity. There are all entries form FreeBSD guest and only 
couple relevant from Linux guest, so even if not fair, still favourable 
for "us" :)
>> And secondly - I have multiple interfaces in VM, renamed by VLANs their are
>> connected to. Some of them have multiple IPv4 addresses. Some also have IPv6
>> address(es). Bummer, I don't see any of this in pool management. And I
>> wouldn't even without interface renames, because we report only one IPv4
>> address. First problem may be solved with some creative work with
>> /etc/rc.conf, for example using result of following command in adition to
>> simple ifconfig | grep xn
>>
>> sysrc -a | grep -E "ifconfig_xn[[:digit:]]_name"
>> ifconfig_xn0_name: vlan1000
>> ifconfig_xn1_name: vlan1001
>> ifconfig_xn2_name: vlan2000
>>
>> or list all ethernet interfaces (ifconfig -l ether) and look for
>> ifconfig_xnX_name line for each not(xn). But regarding other missing
>> info/nodes, I just don't know. May someone please enlighten me what is
>> missing on our side?
> I've added dinoex as he is the maintainer of the xe-guest-utilities
> package, maybe he has some ideas about how this can be solved.
>
> You might also want to raise a ticket with the XCP-ng guys [0] about
> this, they usually care about OSes not officially supported by
> XenServer.
>
> Thanks, Roger.
>
> [0] https://github.com/xcp-ng/xcp/issues

I just started experimenting and it seems like I am lucky.

xenstore-write attr/vif/1/ipv4/0 '11.10.10.10'

xenstore-write attr/vif/0/ipv4/1 '22.10.10.10'

Only one ovious difference between this and Linux output from previous 
message is indexing from 0, but after this write I can see both address 
in both XCP-ng Center and Xen Orchestra.

So my question changes to are we willing to add support for multiple 
IPv4 addresses, IPv6 addresses and renamed interfaces to 
xe-guest-utilities? dinoex@? :)

-- 
Best regards

Ondra Knezour