Beispiel #1
0
def inflow (args):
    n = len(args)
    if n < 4 or n & 1 != 0 or args[n-2] != '>':
        log.error('MM:XX' + ' ERROR: USAGE: inflow [-c cookie] [-s srcaddr/prefix] [-d dstaddr/prefix] [-u udpport] [-t tcpport] > edge_router')
        return
    dst = args[n-1]
    asys, router = tlib.host2as_router(dst)
    if asys is None or asys not in participants:
        log.error('MM:XX' + ' ERROR: inbound flow has bad destination')
        return 
    if dst not in bgprouters:
        log.error('MM:XX' + ' ERROR: inbound flow has bad destination')
        return        
    das, dasport = tlib.host2as_router(dst)
    if das is None:
        log.error('MM:XX' + ' ERROR: inbound flow has bad destination')
        return
    if tlib.as2part(das) is None:
        log.error('MM:XX' + ' ERROR: inbound flow has bad participant')
        return
    
    fwd = int(dasport) 
    policy,error = rules(args[0:n-2], fwd)
    if error is not None:
        log.error('MM:XX' + ' ERROR: ' + error)
        return
    #print policy
    
    message = {}   
    policies = []
    message['new_policies'] = {}
    message['new_policies']['inbound'] = policies
    policies.append(policy)
    #print json.dumps(message, indent=4, sort_keys=True)
    genericObjNW(asys, 'FLOW', json.dumps(message))    
Beispiel #2
0
def outflow(args):
    n = len(args)
    if n < 5 or n & 1 != 1 or args[n - 2] != '>':
        log.error(
            'MM:XX' +
            ' ERROR: USAGE: outflow edgerouter [-c cookie] [-s srcaddr/prefix] [-d dstaddr/prefix] [-u udpport] [-t tcpport] > participant'
        )
        return

    src = args[0]
    if src not in bgprouters:
        log.error('MM:XX' + ' ERROR: outbound flow has bad source')
        return
    sas, sasport = tlib.host2as_router(src)
    if sas is None:
        log.error('MM:XX' + ' ERROR: outbound flow has bad source')
        return
    if tlib.as2part(sas) is None:
        log.error('MM:XX' + ' ERROR: outbound flow has bad participant')
        return

    dst = args[n - 1]
    das = dst  # destination is an AS not a host !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    if dst not in participants:
        log.error('MM:XX' + ' ERROR: outbound flow has bad destination')
        return
    if tlib.as2part(das) is None:
        log.error('MM:XX' + ' ERROR: outbound flow has bad destination')
        return
    fwd = int(tlib.as2part(das))

    policy, error = rules(args[1:n - 2], fwd)
    if error is not None:
        log.error('MM:XX' + ' ERROR: ' + error)
        return
    #print policy

    message = {}
    policies = []
    message['new_policies'] = {}
    message['new_policies']['outbound'] = policies
    policies.append(policy)
    #print json.dumps(message, indent=4, sort_keys=True)
    genericObjNW(sas, 'FLOW', json.dumps(message))
Beispiel #3
0
def outflow (args):
    n = len(args)
    if n < 5 or n & 1 != 1 or args[n-2] != '>':
        log.error('MM:XX' + ' ERROR: USAGE: outflow edgerouter [-c cookie] [-s srcaddr/prefix] [-d dstaddr/prefix] [-u udpport] [-t tcpport] > participant')
        return
    
    src = args[0]
    if src not in bgprouters:
        log.error('MM:XX' + ' ERROR: outbound flow has bad source')
        return
    sas, sasport = tlib.host2as_router(src)
    if sas is None:
        log.error('MM:XX' + ' ERROR: outbound flow has bad source')
        return
    if tlib.as2part(sas) is None:
        log.error('MM:XX' + ' ERROR: outbound flow has bad participant')
        return
    
    dst = args[n-1]
    das = dst  # destination is an AS not a host !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    if dst not in participants:
        log.error('MM:XX' + ' ERROR: outbound flow has bad destination')
        return
    if tlib.as2part(das) is None:
        log.error('MM:XX' + ' ERROR: outbound flow has bad destination')
        return
    fwd = int(tlib.as2part(das)) 
    
    policy,error = rules(args[1:n-2], fwd)
    if error is not None:
        log.error('MM:XX' + ' ERROR: ' + error)
        return
    #print policy
    
    message = {}   
    policies = []
    message['new_policies'] = {}
    message['new_policies']['outbound'] = policies
    policies.append(policy)
    #print json.dumps(message, indent=4, sort_keys=True)  
    genericObjNW(sas, 'FLOW', json.dumps(message))       
Beispiel #4
0
def inflow(args):
    n = len(args)
    if n < 4 or n & 1 != 0 or args[n - 2] != '>':
        log.error(
            'MM:XX' +
            ' ERROR: USAGE: inflow [-c cookie] [-s srcaddr/prefix] [-d dstaddr/prefix] [-u udpport] [-t tcpport] > edge_router'
        )
        return
    dst = args[n - 1]
    asys, router = tlib.host2as_router(dst)
    if asys is None or asys not in participants:
        log.error('MM:XX' + ' ERROR: inbound flow has bad destination')
        return
    if dst not in bgprouters:
        log.error('MM:XX' + ' ERROR: inbound flow has bad destination')
        return
    das, dasport = tlib.host2as_router(dst)
    if das is None:
        log.error('MM:XX' + ' ERROR: inbound flow has bad destination')
        return
    if tlib.as2part(das) is None:
        log.error('MM:XX' + ' ERROR: inbound flow has bad participant')
        return

    fwd = int(dasport)
    policy, error = rules(args[0:n - 2], fwd)
    if error is not None:
        log.error('MM:XX' + ' ERROR: ' + error)
        return
    #print policy

    message = {}
    policies = []
    message['new_policies'] = {}
    message['new_policies']['inbound'] = policies
    policies.append(policy)
    #print json.dumps(message, indent=4, sort_keys=True)
    genericObjNW(asys, 'FLOW', json.dumps(message))