An excerpt from man page of iptables
Code:
The protocol of the rule or of the packet to check. The speci‐
fied protocol can be one of tcp, udp, icmp, or all, or it can be
a numeric value, representing one of these protocols or a dif‐
ferent one. A protocol name from /etc/protocols is also
allowed.
And hence from my system I can tell IGMP and GRE are supported.