Я хочу сопоставить определенный флаг (например, FIN) независимо от любых других установленных флагов. Например, для 17 = ACK + FIN у меня будет совпадение, 3 = SYN + FIN также совпадет (я знаю, что комбинация флагов не должна появляться в обычном сценарии)
Я прочитал спецификацию для OpenFlow 1.3 (с которой я сейчас работаю), а также список изменений для 1.4 и 1.5, но не смог найти ничего подобного. Я искал ключевые слова, такие как «флаг» или «подстановочный знак».
Мое решение пока состоит в том, чтобы указать каждую комбинацию флагов явно. Как
match = ofparser.OFPMatch(eth_type=ether.ETH_TYPE_IP, ip_proto=inet.IPPROTO_TCP, tcp_flags=FIN)
match2 = ofparser.OFPMatch(eth_type=ether.ETH_TYPE_IP, ip_proto=inet.IPPROTO_TCP, tcp_flags=FIN_ACK)
...
Хотя это работает, я хотел бы знать, смогу ли я избежать раздувания моих таблиц с правилами и сопоставления всех этих комбинаций с одним правилом. Может быть, даже если это в будущих версиях OF?
Спасибо за вашу помощь. Приветствия.
Редактировать: Согласно справочной странице ovs-ofctl :
Флаги, не упомянутые, являются символами подстановки.
Так что это должно быть не ограничением самого OpenFlow, а Ryu. При построении объекта совпадения tcp_flags представляются как int, поэтому я предполагаю, что он строит конкретное совпадение.