X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=lib%2Fdummy.c;h=5caceeee19fd3422e14b1dc8e38561e848943314;hb=HEAD;hp=1354de6262c996088e8601674159a9599ad00a9c;hpb=e0edde6fee279cdbbf3c179f5f50adaf0c7c7f1e;p=cascardo%2Fovs.git diff --git a/lib/dummy.c b/lib/dummy.c index 1354de626..5caceeee1 100644 --- a/lib/dummy.c +++ b/lib/dummy.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, 2011, 2012 Nicira, Inc. + * Copyright (c) 2010, 2011, 2012, 2013, 2015 Nicira, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,23 +15,37 @@ */ #include - #include "dummy.h" +#include +#include "util.h" /* Enables support for "dummy" network devices and dpifs, which are useful for * testing. A client program might call this function if it is designed * specifically for testing or the user enables it on the command line. * - * If 'override' is false, then "dummy" dpif and netdev classes will be - * created. If 'override' is true, then in addition all existing dpif and - * netdev classes will be deleted and replaced by dummy classes. + * 'arg' is parsed to determine the override level (see the definition of enum + * dummy_level). * * There is no strong reason why dummy devices shouldn't always be enabled. */ void -dummy_enable(bool override) +dummy_enable(const char *arg) { - netdev_dummy_register(override); - dpif_dummy_register(override); + enum dummy_level level; + + if (!arg || !arg[0]) { + level = DUMMY_OVERRIDE_NONE; + } else if (!strcmp(arg, "system")) { + level = DUMMY_OVERRIDE_SYSTEM; + } else if (!strcmp(arg, "override")) { + level = DUMMY_OVERRIDE_ALL; + } else { + ovs_fatal(0, "%s: unknown dummy level", arg); + } + + netdev_dummy_register(level); + dpif_dummy_register(level); timeval_dummy_register(); + vlandev_dummy_enable(); + ofpact_dummy_enable(); }