Соответствует определенному флагу TCP независимо от других флагов, установленных в Openflow

Я хочу соответствовать конкретному флагу (например, 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, поэтому я предполагаю, что он строит конкретное совпадение.

0 ответов

Другие вопросы по тегам