[libvirt] [PATCH 1/2] add ebtables wrapper

Daniel Veillard veillard at redhat.com
Tue Nov 3 22:17:00 UTC 2009


On Tue, Oct 27, 2009 at 12:36:09PM +0100, Gerhard Stenzel wrote:
> This patch adds the files which implement the ebtables wrapper.
> 
> Signed-off-by: Gerhard Stenzel <gerhard.stenzel at de.ibm.com>

> +++ b/src/libvirt_private.syms
> @@ -234,6 +234,13 @@ iptablesRemoveUdpInput;
>  iptablesSaveRules;
>  
>  
> +# ebtables.h
> +ebtablesRemoveForwardAllowIn;
> +ebtablesAddForwardAllowIn;
> +ebtablesAddForwardPolicyReject;
> +ebtablesContextNew;
> +ebtablesSaveRules;
> +

  Okay I just moved it before events.h to keep module sorting and
also sorted the entry points.

> +enum {
> +    ADD = 0,
> +    REMOVE,
> +    CREATE,
> +    POLICY,
> +    INSERT
> +};

  Somehow an enum without a name/type is all the problems of enums
without the usefulness (compared to #define) but I must be biased :-)

> +static void
> +ebtRulesSave(ebtRules *rules)
> +{
> +    (void) rules;

  I assume this means /* TODO */

> +}
> +
[...]
> +
> +    if (virRun(NULL, argv, NULL) < 0) {
> +        retval = errno;
> +        goto error;
> +    }
> +
> +    if (action == ADD || action == CREATE || action == POLICY || action == INSERT) {

  need a long line break

> +        retval = ebtRulesAppend(rules, rule, argv, command_idx);
> +        rule = NULL;
> +        argv = NULL;
> +    } else {
> +        retval = ebtRulesRemove(rules, rule);
> +    }
> +
[...]
> +/**
> + * ebtablesSaveRules:
> + * @ctx: pointer to the EB table context
> + *
> + * Saves all the EB table rules associated with a context
> + * to disk so that if ebtables is restarted, the rules
> + * will automatically be reload.
> + */
> +void
> +ebtablesSaveRules(ebtablesContext *ctx)
> +{
> +    ebtRulesSave(ctx->input_filter);
> +    ebtRulesSave(ctx->forward_filter);
> +    ebtRulesSave(ctx->nat_postrouting);
> +}

  Hum, and where ? Under /etc/libvirt/ebtables/.... ?

Are the table and chain names provided in ebtRulesNew() sufficient
to uniquely name the set ? I hope so otherwise we're gonna have trouble
with persistance. It would be good to have ebtRulesSave() documented if
not fully finished before next release.

  I'm gonna commit this, but I think we need to double-check that the
current APIs won't be a problem when we want to implement saving (didn't
checked the second patch yet).

 I also think the spec file should add a Requires to ebtables as this
is not installed systematically (it wasn't present on my workstation
by default).

  I will push this tonight,

    thanks !

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list