title: Bypass some packet layers in Python Scapy
body: <p>I want to construct an IP packet with Vlan part.
  It's easily done with Scapy:</p>
  
  <pre><code>from scapy import inet
  newpkt = inet.Ether()/inet.Dot1Q()/inet.IP()
  </code></pre>
  
  <p>Sometimes I want to have <code>inet.Dot1Q()</code> in the packet, sometimes no.
  What should be the default value for <code>inet.Dot1Q()</code> so it's simply bypassed in the operator '/'?
  I tried <code>''</code> and <code>None</code> - they don't work.</p>
  
  <pre><code>from scapy import inet
  myDot1Q = SOME DEFAULT VALUE
  newpkt = inet.Ether()/myDot1Q/inet.IP()
  #new packet is a valid IP packet here
  </code></pre>
  
  <p><strong>EDIT: A different explanation of my problem</strong></p>
  
  <p>1) I can create a packet with VLAN tag</p>
  
  <pre><code>inet.Ether()/inet.Dot1Q/inet.IP()
  </code></pre>
  
  <p>2) I can create a packet with double VLAN tag</p>
  
  <pre><code>inet.Ether()/inet.Dot1Q/inet.Dot1Q/inet.IP()
  </code></pre>
  
  <p>3) How can I build a packet that may be an untagged packet, VLAN tagged packet or double VLAN tagged packet? It would be great to have something like:</p>
  
  <pre><code>#No VLAN
  myVlan = ???
  myDoubleVlan = ???
  
  #VLAN
  myVlan = inet.Dot1Q()
  myDoubleVlan = ???
  
  #Double VLAN
  myVlan = inet.Dot1Q()
  myDoubleVlan = inet.Dot1Q()
  
  #In any case the packet structure should remain the same
  inet.Ether()/myVlan/myDoubleVlan/inet.IP()
  </code></pre>
  
  <p>I can't figure out what the default value <code>???</code> should be to be able to properly construct the packet.</p>