def test_nlri(self): components = { 'destination': Flow4Destination(IPv4.pton("192.0.2.0"), 24), 'source': Flow4Source(IPv4.pton("10.1.2.0"), 24), 'anyport_1': FlowAnyPort(NumericOperator.EQ | NumericOperator.GT, 25), 'anyport_2': FlowAnyPort(NumericOperator.EQ | NumericOperator.LT, 80), } messages = { 'destination': [0x01, 0x18, 0xC0, 0x00, 0x02], 'source': [0x02, 0x18, 0x0A, 0x01, 0x02], 'anyport_1': [0x04, 0x43, 0x19], 'anyport_2': [0x85, 0x50], } flow = Flow() message = b"" for key in ['destination', 'source', 'anyport_1', 'anyport_2']: flow.add(components[key]) message += bytes(messages[key]) message = bytes([len(message)]) + message # policy.add(to_FlowAction(65000,False,False)) flow = flow.pack() if message[0] != flow[0]: self.fail('size mismatch %s %s\n' % (flow[0], message[0])) if len(flow) != flow[0] + 1: self.fail('invalid size for message')
def test_nlri (self): components = { 'destination': Flow4Destination("192.0.2.0",24), 'source': Flow4Source("10.1.2.0",24), 'anyport_1': FlowAnyPort(NumericOperator.EQ | NumericOperator.GT,25), 'anyport_2': FlowAnyPort(NumericOperator.EQ | NumericOperator.LT,80), } messages = { 'destination': [0x01, 0x18, 0xc0, 0x00, 0x02], 'source': [0x02, 0x18, 0x0a, 0x01, 0x02], 'anyport_1': [0x04, 0x43, 0x19], 'anyport_2': [0x85, 0x50], } flow = Flow() message = "" for key in ['destination','source','anyport_1','anyport_2']: flow.add(components[key]) message += ''.join([chr(_) for _ in messages[key]]) message = chr(len(message)) + message # policy.add(to_FlowAction(65000,False,False)) flow = flow.pack() if message[0] != flow[0]: self.fail('size mismatch %s %s\n' % (ord(flow[0]),ord(message[0]))) if len(flow) != ord(flow[0]) + 1: self.fail('invalid size for message')
def test_rule_and(self): components = { 'destination': Flow4Destination(IPv4.pton("192.0.2.0"), 24), 'source': Flow4Source(IPv4.pton("10.1.2.0"), 24), 'anyport_1': FlowAnyPort(NumericOperator.EQ | NumericOperator.GT, 25), 'anyport_2': FlowAnyPort(NumericOperator.EQ | NumericOperator.LT, 80), } messages = { 'destination': [0x01, 0x18, 0xC0, 0x00, 0x02], 'source': [0x02, 0x18, 0x0A, 0x01, 0x02], 'anyport_1': [0x04, 0x43, 0x19], 'anyport_2': [0x04, 0x85, 0x50], } flow = Flow() message = b"" for key in ['destination', 'source', 'anyport_1', 'anyport_2']: flow.add(components[key]) message += bytes(messages[key]) message = bytes([len(message)]) + message # flow.add(to_FlowAction(65000,False,False)) flow.pack()
def test_rule_and (self): components = { 'destination': Flow4Destination("192.0.2.0",24), 'source': Flow4Source("10.1.2.0",24), 'anyport_1': FlowAnyPort(NumericOperator.EQ | NumericOperator.GT,25), 'anyport_2': FlowAnyPort(NumericOperator.EQ | NumericOperator.LT,80), } messages = { 'destination': [0x01, 0x18, 0xc0, 0x00, 0x02], 'source': [0x02, 0x18, 0x0a, 0x01, 0x02], 'anyport_1': [0x04, 0x43, 0x19], 'anyport_2': [0x04, 0x85, 0x50], } flow = Flow() message = "" for key in ['destination','source','anyport_1','anyport_2']: flow.add(components[key]) message += ''.join([chr(_) for _ in messages[key]]) message = chr(len(message)) + message # flow.add(to_FlowAction(65000,False,False)) flow.pack()