Dear Sir/Madam,
I'm trying to drop packets that match an IP address using this code
> class RuleBase(object):
> def __init__(self, dp: Datapath, *args, **kwargs):
> self.dp = dp
> self.ofproto = self.dp.ofproto
> self.parser = self.dp.ofproto_parser
> self.match = kwargs
> self.inst = []
>
> def add_flow(self):
> match = self.parser.OFPMatch(**self.match)
> msg = self.parser.OFPFlowMod(
> table_id=FIREWALL_TABLE_ID,
> datapath=self.dp,
> priority=10,
> command=self.ofproto.OFPFC_ADD,
> match=match,
> instructions=self.inst
> )
> self.dp.send_msg(msg)
>
>
> class DenyRule(RuleBase):
> def __init__(self, *args, **kwargs):
> super(DenyRule, self).__init__(*args, **kwargs)
> self.inst = [
>
self.parser.OFPInstructionActions(self.ofproto.OFPIT_APPLY_ACTIONS, [])
> ]
I'm using it in switch_features_handler as follows:
> msg = ev.msg
> dp = msg.datapath
> d_rule = DenyRule(dp=dp, ipv6_dst='2001:db8:bd05:1d2:288a:1fc0:1:10ee')
> d_rule.add_flow()
But, I get the following output:
move onto main mode
EventOFPErrorMsg received.
version=0x4, msg_type=0x1, msg_len=0x4c, xid=0xa6de76ce
`-- msg_type: OFPT_ERROR(1)
OFPErrorMsg(type=0x4, code=0x9,
data=b'\x04\x0e\x00\x50\xa6\xde\x76\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x18\x80\x00\x36\x10\x20\x01\x0d\xb8\xbd\x05\x01\xd2')
|-- type: OFPET_BAD_MATCH(4)
|-- code: OFPBMC_BAD_PREREQ(9)
`-- data: version=0x4, msg_type=0xe, msg_len=0x50, xid=0xa6de76ce
`-- msg_type: OFPT_FLOW_MOD(14)
Best Regards,
Maged
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel