mirror of
https://github.com/faucetsdn/ryu.git
synced 2026-05-08 13:56:09 +02:00
packet lib: add Packet.__contains__
you can do something like: if arp.arp in Packet(msg.data): a = arp.arp(...) if a in Packet(msg.data): >>> from ryu.lib.packet import packet >>> from ryu.lib.packet import arp >>> a = arp.arp_ip(1, 0, 0, 0, 0) >>> p = packet.Packet() >>> p.protocols = [a] >>> arp.arp in p True >>> a in p True Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
This commit is contained in:
parent
da5c7f13cf
commit
6cc2c48016
@ -13,6 +13,8 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import inspect
|
||||
|
||||
from . import packet_base
|
||||
from . import ethernet
|
||||
|
||||
@ -109,3 +111,9 @@ class Packet(object):
|
||||
|
||||
def __len__(self):
|
||||
return len(self.protocols)
|
||||
|
||||
def __contains__(self, protocol):
|
||||
if (inspect.isclass(protocol) and
|
||||
issubclass(protocol, packet_base.PacketBase)):
|
||||
return protocol in [p.__class__ for p in self.protocols]
|
||||
return protocol in self.protocols
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user