예제 #1
0
def build_ir(ofinputs_by_version):
    classes = []
    enums = []
    for wire_version, ofinputs in ofinputs_by_version.items():
        version = OFVersions.from_wire(wire_version)
        ofprotocol = loxi_ir.build_protocol(version, ofinputs)
        loxi_globals.ir[version] = ofprotocol

    loxi_globals.unified = loxi_ir.build_unified_ir(loxi_globals.ir)
def build_ir(ofinputs_by_version):
    classes = []
    enums = []
    for wire_version, ofinputs in ofinputs_by_version.items():
        version = OFVersions.from_wire(wire_version)
        ofprotocol = loxi_ir.build_protocol(version, ofinputs)
        loxi_globals.ir[version] = ofprotocol

    loxi_globals.unified = loxi_ir.build_unified_ir(loxi_globals.ir)
예제 #3
0
}


def make_gen(name, version):
    fn = getattr(py_gen.codegen, "generate_" + name)
    return lambda out, name: fn(out, name, version)


def static(template_name):
    return lambda out, name: py_gen.util.render_template(out, template_name)


targets = {
    prefix + '/__init__.py': static('toplevel_init.py'),
    prefix + '/pp.py': static('pp.py'),
    prefix + '/generic_util.py': static('generic_util.py'),
}

for version, subdir in versions.items():
    targets['%s/%s/__init__.py' % (prefix, subdir)] = make_gen('init', version)
    for module in modules[version]:
        filename = '%s/%s/%s.py' % (prefix, subdir, module)
        targets[filename] = make_gen(module, OFVersions.from_wire(version))


def generate(install_dir):
    py_gen.codegen.init()
    for (name, fn) in targets.items():
        with template_utils.open_output(install_dir, name) as outfile:
            fn(outfile, os.path.basename(name))
예제 #4
0
    1: ["action", "common", "const", "message", "util"],
    2: ["action", "common", "const", "instruction", "message", "util"],
    3: ["action", "common", "const", "instruction", "message", "oxm", "util"],
    4: ["action", "action_id", "common", "const", "instruction", "instruction_id", "message", "meter_band", "oxm", "bsn_tlv", "util"],
}

def make_gen(name, version):
    fn = getattr(py_gen.codegen, "generate_" + name)
    return lambda out, name: fn(out, name, version)

def static(template_name):
    return lambda out, name: py_gen.util.render_template(out, template_name)

targets = {
    prefix+'/__init__.py': static('toplevel_init.py'),
    prefix+'/pp.py': static('pp.py'),
    prefix+'/generic_util.py': static('generic_util.py'),
}

for version, subdir in versions.items():
    targets['%s/%s/__init__.py' % (prefix, subdir)] = make_gen('init', version)
    for module in modules[version]:
        filename = '%s/%s/%s.py' % (prefix, subdir, module)
        targets[filename] = make_gen(module, OFVersions.from_wire(version))

def generate(install_dir):
    py_gen.codegen.init()
    for (name, fn) in targets.items():
        with template_utils.open_output(install_dir, name) as outfile:
            fn(outfile, os.path.basename(name))