On Mon, Feb 06, 2012 at 10:47:09AM -0800, hiren panchasara wrote: > Hi Folks, > > I am trying to make netcf work with FreeBSD. > I am looking for more documentation on xml part of it. (I think augeas is > used for xml/xslt?) > > I can "list" the interfaces but "dumpxml" does not work as I need to > prepare xml/xsl scaffolding. > > Any pointers would be appreciated.
The existing drivers are obviously worth a look, but aside from that the general architecture is as follows - Mostly a 3 step transformation 1. NETCF XML -> Augeas tree XML 2. Augeas tree XML -> Augeas object 3. Augest object -> platform config files - src/drv_{platform}.c the implementation for $platform. The two most important APIs to be implemented here are: drv_define - accepts netcf XML and writes out the platform specific config drv_xml_desc - reads platform specific config & outputs netcf XML With the Debian/RedHat/Suse drivers, these two methods use an XSL transform for doing the hard work in step 1 of the transformation. data/debian-get.xsl - Converts NetCF XML into Augeas tree XML used by drv_define data/debian-put.xsl - Converts Augeas tree XML to NetCF XML used by drv_xml_desc Step 2 is done by code in src/drv_debian.c aug_get_xml and aug_put_xml Step 3 is done by the Augeas lens. The tests/interface directory contains many NetCF XML documents for varying configs. The tests/debian/schema directory contains corresponding Augeas XML tree documents. NB, the debian & Red Hat drivers actually use a slightly different XML structure for the Augeas XML tree, but the concept is the same. So for FreeBSD, you would need to - Make sure Augeas has lens definitions which can parse and write the FreeBSD config files for networking - this is code that lives in Augeas - Create a drv_freebsd.c driver for netcf - best to just copy the code from either the Red Hat, Debian or Suse driver, depending on which distro has config files that work most like FreeBSD (Debian uses a single big file, while Red Hat uses one file per interface) - Write data/freebsd-{get,put}.xsl transforms for going between the NetCF & Augeas XML formats. - Create test data files in tests/freebsd/schema and then hack your driver until the tests pass. Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| _______________________________________________ netcf-devel mailing list netcf-devel@lists.fedorahosted.org https://fedorahosted.org/mailman/listinfo/netcf-devel