• Robert Ricci's avatar
    Some big changes to assign, and some related changes to assign_wrapper · 238dce73
    Robert Ricci authored
    and ptopgen.
    Add link typing to assign. Each virtual link is given a single type.
    Each physical link is given one or more types. A virtual link will
    only be mapped to a physical link which can satisfy its type. In both
    the top and ptop files, the link types are now mandatory, and they
    fall at the end of the mandatory link arguments.
    This differers from the 'regular' type system in two ways. First, a
    plink is not constrained to filling only one type at a time. If we are
    using emulated links, a plink could satisfy, say, an 'ethernet' link
    and an 'fxp' link at the same time. This seems to more naturally match
    the way we'll use link types.  Second, there are no counts assoicated
    with link types, as there are for node types. ie. a link is not an
    'ethernet:1' link, it's an 'ethernet' link. Presumably, when
    multiplexing virtual links onto a physical one, it's bandwidth that's
    the factor that limits the multiplexing.
    The link type is now taken into account when constructing pclasses,
    and in the mapping precheck.
    As a side-effect of these changes, the silly 'count' argument on the
    end of link lines in the ptop file, which was used for the fake LAN
    nodes, is no longer supported.
    The implementation could be a bit more efficient, but that would mean
    tossing more of the stuff we do with boost's graph library. I think
    this should happen, but today is not the day.
    Modify assign_wrapper and ptopgen to spit out top and ptop files in
    the new format.
    Changed the constant LINK_UKNOWN to LINK_UNMAPPED - the new name more
    accurately reflects the way this constant is used.
    Add a new '-n' flag that tells assign not to do annealing, just exit
    after the type precheck.
    Clarify the usage message for the -c flag.
    Removed some dead code for dealing with LAN nodes.