Hi,
Recently I have picked up Sean's and Hiren's activities in porting
Qemu driver on FreeBSD.
At this point I have the basics working. Meaning that these things
work:
- Basic host commands (version, nodeinfo, etc)
- Can perform basic operations on the VM (start, stop, destroy, etc)
- Basic bridging (bridge creation/removing, adding/removing interfaces,
setting addresses etc)
Currently I keep FreeBSD specific info here:
https://github.com/novel/fbsd-libvirt/blob/freebsd/README-freebsd
There are a number things to be done:
- Firewall support. Currently I have just disabled iptables calls
and add general ipfw NAT rules for all VMs.
This appears to be the most tough part for me at this point for
a number of reasons:
* FreeBSD has two widely used firewall packages: pf and ipfw.
I'm not sure if they play nice together, e.g. if I choose
to use ipfw, people that have pf configuration will have
problems making libvirt work with their existing setup
* Need to design a general schema for injection of the rules
so they don't harm existing setup
ipfw seems to be more appealing for automatic control via
external applications like libvirt, but I'm still not sure
how to organise rulesets.
- Affinity stuff needs to be implemented
- Code needs a lot of clean-up, needs to be refactored to
extract common cross-platfrom code, etc
- NWFilter stuff needs to be implemented (this is sort of a long
term goal)
The code is available here:
https://github.com/novel/fbsd-libvirt/tree/freebsd
Current changes could be observed here:
https://github.com/novel/fbsd-libvirt/compare/upstream_master...freebsd
I would appreciate your thoughts and feedback on that topic.
Thanks
Roman Bogorodskiy