def __init__(self, raw=None, prev=None, **kw):
        print "DJ---/pox/lib.packet_sine.py class sine __init__!"
        packet_base.__init__(self)

        self.prev = prev

        #header information
        self.type   = 0
        self.length = 0 #including header
        self.flag   = 0

        #all information to be used in SINE
        self.sid    = None
        self.srcnid = None
        self.dstnid = None
        self.sbd    = None 
        self.nbd    = None
        self.nid = None
        self.swnid = None
        self.port = None # the port of the nearby router connected with server
        self.ip = None
        self.mac = None

        self.next   = b''

        if raw is not None:
            self.parse(raw)
Example #2
0
  def __init__(self, raw=None, prev=None, **kw):
    packet_base.__init__(self)

    if len(ethernet.type_parsers) == 0:
      from vlan import vlan
      ethernet.type_parsers[ethernet.VLAN_TYPE] = vlan
      from arp  import arp
      ethernet.type_parsers[ethernet.ARP_TYPE]  = arp
      ethernet.type_parsers[ethernet.RARP_TYPE] = arp
      from ipv4 import ipv4
      ethernet.type_parsers[ethernet.IP_TYPE]   = ipv4
      from ipv6 import ipv6
      ethernet.type_parsers[ethernet.IPV6_TYPE] = ipv6
      from lldp import lldp
      ethernet.type_parsers[ethernet.LLDP_TYPE] = lldp
      from eapol import eapol
      ethernet.type_parsers[ethernet.PAE_TYPE]  = eapol
      from mpls import mpls
      ethernet.type_parsers[ethernet.MPLS_TYPE] = mpls
      ethernet.type_parsers[ethernet.MPLS_MC_TYPE] = mpls
      from llc import llc
      ethernet._llc = llc

    self.prev = prev

    self.dst  = ETHER_ANY
    self.src  = ETHER_ANY

    self.type = 0
    self.next = b''

    if raw is not None:
      self.parse(raw)

    self._init(kw)
Example #3
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.op = 0
        self.htype = 0
        self.hlen = 0
        self.hops = 0
        self.xid = 0
        self.secs = 0
        self.flags = 0
        self.ciaddr = IP_ANY
        self.yiaddr = IP_ANY
        self.siaddr = IP_ANY
        self.giaddr = IP_ANY
        self.chaddr = None
        self.sname = b''
        self.file = b''
        self.magic = self.MAGIC
        self._raw_options = b''

        if raw is not None:
            self.parse(raw)
        else:
            self.options = util.DirtyDict()

        self._init(kw)
Example #4
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)
        self.prev = prev

        self.version = 2
        self.type = 0
        self.plen = pwospf.MIN_LEN
        self.rid = 0
        self.aid = 0
        self.csum = 0
        self.autype = 0
        self.auth = 0

        # Hello packet
        self.helloint = 0
        self.netmask = 0

        # LSU packet
        self.seq = 0
        self.ttl = 64
        self.nadv = 0
        self.advList = []

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #5
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.v = 4
        self.hl = ipv4.MIN_LEN / 4
        self.tos = 0
        self.iplen = ipv4.MIN_LEN
        ipv4.ip_id = (ipv4.ip_id + 1) & 0xffff
        self.id = ipv4.ip_id
        self.flags = 0
        self.frag = 0
        self.ttl = 64
        self.protocol = 0
        self.csum = 0
        self.srcip = IP_ANY
        self.dstip = IP_ANY
        self.next = b''
        self.raw_options = b''

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #6
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.op = 0
        self.htype = 0
        self.hlen = 0
        self.hops = 0
        self.xid = 0
        self.secs = 0
        self.flags = 0
        self.ciaddr = IP_ANY
        self.yiaddr = IP_ANY
        self.siaddr = IP_ANY
        self.giaddr = IP_ANY
        self.chaddr = None
        self.sname = b''
        self.file = b''
        self.magic = self.MAGIC
        self._raw_options = b''

        if raw is not None:
            self.parse(raw)
        else:
            self.options = util.DirtyDict()

        self._init(kw)
Example #7
0
  def __init__(self, raw=None, prev=None, **kw):
    packet_base.__init__(self)

    self.prev = prev

    self.ver_and_type = 0
    # self.max_response_time = 0
    self.csum = 0
    # self.address = None
    # self.extra = b''
    
    self.reserved1 = 0
    self.reserved2 = 0
    self.num_records = 0
    self.grs = []
    gr = {}
    gr[GR_RECORD_TYPE]  = 4
    gr[GR_AUX_DATA_LEN] = 0
    gr[GR_NUM_SRC] = 0
    gr[GR_MULTI_ADDR] = None
    gr[GR_SRC_ADDR] = []
    gr[GR_AUX_DATA] = b''
    # self.grs.append(gr)

    if raw is not None:
      self.parse(raw)

    self._init(kw)
Example #8
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.questions = []
        self.answers = []
        self.authorities = []
        self.additional = []

        self.id = 0
        self.qr = False  # Is Query
        self.opcode = 0
        self.aa = False  # Authoritative Answer
        self.tc = False  # Truncated
        self.rd = False  # Recursion Desired
        self.ra = False  # Recursion Available
        self.z = False
        self.ad = False
        self.cd = False
        self.rcode = 0
        # TODO: everything else here

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #9
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        if len(ethernet.type_parsers) == 0:
            from vlan import vlan
            ethernet.type_parsers[ethernet.VLAN_TYPE] = vlan
            from arp import arp
            ethernet.type_parsers[ethernet.ARP_TYPE] = arp
            ethernet.type_parsers[ethernet.RARP_TYPE] = arp
            from ipv4 import ipv4
            ethernet.type_parsers[ethernet.IP_TYPE] = ipv4
            from ipv6 import ipv6
            ethernet.type_parsers[ethernet.IPV6_TYPE] = ipv6
            from lldp import lldp
            ethernet.type_parsers[ethernet.LLDP_TYPE] = lldp
            from eapol import eapol
            ethernet.type_parsers[ethernet.PAE_TYPE] = eapol
            from mpls import mpls
            ethernet.type_parsers[ethernet.MPLS_TYPE] = mpls
            ethernet.type_parsers[ethernet.MPLS_MC_TYPE] = mpls
            from llc import llc
            ethernet._llc = llc

        self.prev = prev

        self.dst = ETHER_ANY
        self.src = ETHER_ANY

        self.type = 0
        self.next = b''

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #10
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.questions   = []
        self.answers     = []
        self.authorities = []
        self.additional  = []

        self.id = 0
        self.qr = False # Is Query
        self.opcode = 0
        self.aa = False # Authoritative Answer
        self.tc = False # Truncated
        self.rd = False # Recursion Desired
        self.ra = False # Recursion Available
        self.z = False
        self.ad = False
        self.cd = False
        self.rcode = 0
        # TODO: everything else here

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #11
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)
        self.prev = prev

        if raw is not None:
            self.parse(raw)

         self._init(kw)
Example #12
0
  def __init__ (self, prev=None, **kw):
    packet_base.__init__(self)
    self.prev = prev
    self.next = None

    self._init_()

    self._init(kw)
    self.parsed = True
Example #13
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.id = random.randint(0, 65535)
        self.seq = 0
        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #14
0
    def __init__ (self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.unused = 0

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #15
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.unused = 0
        self.next_mtu = 0

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #16
0
  def __init__ (self, raw=None, prev=None, **kw):
    packet_base.__init__(self)

    self.prev = prev

    self.id  = random.randint(0, 65535)
    self.seq = 0

    if raw is not None:
      self.parse(raw)

    self._init(kw)
Example #17
0
  def __init__ (self, raw=None, prev=None, **kw):
    packet_base.__init__(self)

    self.prev = prev

    self.next = None
    self.tlvs = []

    if raw is not None:
      self.parse(raw)

    self._init(kw)
Example #18
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)
        self.prev = prev

        self.code = self.ACCESS_REQUEST
        self.id = 0
        self.length = 0

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #19
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.type = 0
        self.code = 0
        self.csum = 0

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #20
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.next = None
        self.label = 0
        self.tc = 0
        self.s = 0
        self.ttl = 0
        if raw is not None:
            self.parse(raw)
        self._init(kw)
Example #21
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.code = self.REQUEST_CODE
        self.id = 0
        self.length = 0

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #22
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.type = 0
        self.code = 0
        self.csum = 0

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #23
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.next = None

        self.vni = None # i flag unset

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #24
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.version = self.V1_PROTO
        self.type = self.EAP_TYPE
        self.bodylen = 0

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #25
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.next = None
        self.label = 0
        self.tc = 0
        self.s = 0
        self.ttl = 0
        if raw is not None:
            self.parse(raw)
        self._init(kw)
Example #26
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.version = self.V1_PROTO
        self.type = self.EAP_TYPE
        self.bodylen = 0

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #27
0
  def __init__(self, raw=None, prev=None, **kw):
    packet_base.__init__(self)

    self.prev = prev

    self.entries = []

    self.command = 0
    self.version = 0

    if raw is not None:
      self.parse(raw)

    self._init(kw)
Example #28
0
File: udp.py Project: YuShijia/POX
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.srcport = 0
        self.dstport = 0
        self.len = 8
        self.csum = 0

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #29
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.entries = []

        self.command = 0
        self.version = 0

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #30
0
  def __init__ (self, raw=None, prev=None, **kw):
    #TODO: netmask initializer?
    packet_base.__init__(self)

    self.address_family = 0
    self.route_tag = 0
    self.ip = None # IPAddr; bad default is to force setting
    self._netmask = 0 # An IPAddr, but netmask property lets you assign a
                      # dotquad string or an integer number of bits.
    self.next_hop = IP_ANY
    self.metric = 0

    if raw is not None:
      self.parse(raw)
    self._init(kw)
Example #31
0
  def __init__(self, raw=None, prev=None, **kw):
    packet_base.__init__(self)

    self.prev = prev

    self.ver_and_type = 0
    self.max_response_time = 0
    self.csum = 0
    self.address = None
    self.extra = b''

    if raw is not None:
      self.parse(raw)

    self._init(kw)
Example #32
0
    def __init__(self, raw=None, prev=None, **kw):
        #TODO: netmask initializer?
        packet_base.__init__(self)

        self.address_family = 0
        self.route_tag = 0
        self.ip = None  # IPAddr; bad default is to force setting
        self._netmask = 0  # An IPAddr, but netmask property lets you assign a
        # dotquad string or an integer number of bits.
        self.next_hop = IP_ANY
        self.metric = 0

        if raw is not None:
            self.parse(raw)
        self._init(kw)
Example #33
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.ver_and_type = 0
        self.max_response_time = 0
        self.csum = 0
        self.address = None
        self.extra = b''

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #34
0
    def __init__(self, raw=None, prev=None,  **kw):
        packet_base.__init__(self)

        self.prev = prev
        self.code = 1
        self.id = random.randint(1,255)
        self.length = 0
        self.authenticator = os.urandom(16)

        self.attributes=[]
        
        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #35
0
 def __init__(self,raw=None, prev=None, **kw):
     packet_base.__init__(self)
     
     self.version = 2     #OSPF v2
     self.type = 0
     self.length = ospf.MIN_LEN
     self.router_id = None
     self.area_id = None
     self.csum = None
     self.au_type = None
     self.auth = None
     
     if raw is not None:
         self.parse(raw)
     
     self._init(kw)
Example #36
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.code = self.REQUEST_CODE
        self.id = random.randint(1,256)
        self.length = 4
        
        self.type = 0
        self.data = "0"

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #37
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)
        self.prev = prev

        self.vers_diag = bfd.BFD_VERSION << 5
        self.flags = 0
        self.mult = 0
        self.length = bfd.MIN_LEN
        self.my_disc = 0
        self.your_disc = 0
        self.min_tx = 0
        self.min_rx = 0
        self.min_rx_echo = 0

        if raw is not None:
            self.parse(raw)
Example #38
0
File: vlan.py Project: yotamhc/pox
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.next = None

        self.pcp = 0
        self.cfi = 0
        self.id = 0
        self.eth_type = 0

        if raw is not None:
            self.parse(raw)

        self._init(kw)
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.next = None

        self.pcp      = 0
        self.cfi      = 0
        self.id       = 0
        self.eth_type = 0

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #40
0
  def __init__ (self, raw=None, prev=None, **kw):
    packet_base.__init__(self)

    self.prev = prev

    self.next = None

    self.length = self.MIN_LEN
    self.dsap = None
    self.ssap = None
    self.control = None
    self.oui = None #FIXME: Stored as bytes; lib.addresses uses ints.
    self.eth_type = ethernet.INVALID_TYPE

    if raw is not None:
        self.parse(raw)

    self._init(kw)
Example #41
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.next = None

        self.length = self.MIN_LEN
        self.dsap = None
        self.ssap = None
        self.control = None
        self.oui = None
        self.eth_type = ethernet.INVALID_TYPE

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #42
0
  def __init__ (self, raw=None, prev=None, **kw):
    packet_base.__init__(self)

    self.prev = prev

    self.next = None

    self.length = self.MIN_LEN
    self.dsap = None
    self.ssap = None
    self.control = None
    self.oui = None
    self.eth_type = ethernet.INVALID_TYPE

    if raw is not None:
        self.parse(raw)

    self._init(kw)
Example #43
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.src_address = 0  # 32 bit
        self.dst_address = 0  # 32 bit
        self.seq = 0  # 32 bit
        self.ack = 0  # 32 bit
        self.partial_acks = 0  # 32 bit
        self.flags = 0  # flags 16 bits
        self.ttl = self.TTL_INIT  # ttl 16 bits
        self.next = b''

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #44
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.next = None

        self.length = self.MIN_LEN
        self.dsap = None
        self.ssap = None
        self.control = None
        self.oui = None  #FIXME: Stored as bytes; lib.addresses uses ints.
        self.eth_type = ethernet.INVALID_TYPE

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #45
0
    def __init__(self, raw=None, prev=None, **kw):
        # global _ipv4
        # if not _ipv4:
        #  from ipv4 import ipv4
        #  _ipv4 = ipv4

        packet_base.__init__(self)

        self.prev = prev

        self.srcport = 0
        self.dstport = 0
        self.len = 8
        self.csum = 0

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #46
0
File: udp.py Project: Jehadali/pox
    def __init__(self, raw=None, prev=None, **kw):
        # global _ipv4
        # if not _ipv4:
        #  from ipv4 import ipv4
        #  _ipv4 = ipv4

        packet_base.__init__(self)

        self.prev = prev

        self.srcport = 0
        self.dstport = 0
        self.len = 8
        self.csum = 0

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #47
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.hwtype     = arp.HW_TYPE_ETHERNET
        self.prototype  = arp.PROTO_TYPE_IP
        self.hwsrc      = ETHER_ANY
        self.hwdst      = ETHER_ANY
        self.hwlen      = 6
        self.opcode     = 0
        self.protolen   = 4
        self.protosrc   = IP_ANY
        self.protodst   = IP_ANY
        self.next       = b''

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #48
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.hwtype = arp.HW_TYPE_ETHERNET
        self.prototype = arp.PROTO_TYPE_IP
        self.hwsrc = ETHER_ANY
        self.hwdst = ETHER_ANY
        self.hwlen = 6
        self.opcode = 0
        self.protolen = 4
        self.protosrc = IP_ANY
        self.protodst = IP_ANY
        self.next = b''

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #49
0
  def __init__ (self, raw=None, prev=None, **kw):
    packet_base.__init__(self)

    self.prev = prev

    self.v     = 6
    self.tc    = 0
    self.flow  = 0
    self.payload_length = 0
    self.next_header_type = None
    self.hop_limit = 0
    self.srcip = IPAddr6.UNDEFINED
    self.dstip = IPAddr6.UNDEFINED
    self.extension_headers = []

    self.next  = b''

    if raw is not None:
      self.parse(raw)

    self._init(kw)
Example #50
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.v = 6
        self.tc = 0
        self.flow = 0
        self.payload_length = 0
        self.next_header_type = None
        self.hop_limit = 0
        self.srcip = IPAddr6.UNDEFINED
        self.dstip = IPAddr6.UNDEFINED
        self.extension_headers = []

        self.next = b''

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #51
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.srcport = 0  # 16 bit
        self.dstport = 0  # 16 bit
        self.seq = 0  # 32 bit
        self.ack = 0  # 32 bit
        self.off = 0  # 4 bits
        self.res = 0  # 4 bits
        self.flags = 0  # reserved, 2 bits flags 6 bits
        self.win = 0  # 16 bits
        self.csum = 0  # 16 bits
        self.urg = 0  # 16 bits
        self.tcplen = 0  # Options? #TODO: FIXME
        self.options = []
        self.next = b''

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #52
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.srcport  = 0  # 16 bit
        self.dstport  = 0  # 16 bit
        self.seq      = 0  # 32 bit
        self.ack      = 0  # 32 bit
        self.off      = 0  # 4 bits
        self.res      = 0  # 4 bits
        self.flags    = 0  # reserved, 2 bits flags 6 bits
        self.win      = 0  # 16 bits
        self.csum     = 0  # 16 bits
        self.urg      = 0  # 16 bits
        self.tcplen   = 0  # Options? #TODO: FIXME
        self.options  = []
        self.next     = b''

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #53
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.next = None

        self.type = 0  # Inner packet type
        self.ver = 0
        self.strict_source_route = False
        self.recursion = 0  #TODO: Implement this right

        self.route_offset = 0

        self.key = None
        self.seq = None
        self.csum = None

        self.routing = None

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #54
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.dlen = 0
        self.ver_and_type = 0
        self.msg_type = UNPARSED_IGMP_PACKET
        self.max_response_time = 0
        self.suppress_router_processing = False
        self.qrv = 0
        self.qqic = 0
        self.csum = 0
        self.address = IPAddr("0.0.0.0")
        self.num_sources = 0
        self.source_addresses = []
        self.num_group_records =0
        self.group_records = []
        self.extra = b''

        if raw is not None:
          self.parse(raw)

        self._init(kw)
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.dlen = 0
        self.ver_and_type = 0
        self.msg_type = UNPARSED_IGMP_PACKET
        self.max_response_time = 0
        self.suppress_router_processing = False
        self.qrv = 0
        self.qqic = 0
        self.csum = 0
        self.address = IPAddr("0.0.0.0")
        self.num_sources = 0
        self.source_addresses = []
        self.num_group_records = 0
        self.group_records = []
        self.extra = b''

        if raw is not None:
            self.parse(raw)

        self._init(kw)
Example #56
0
    def __init__(self, raw=None, prev=None, **kw):
        packet_base.__init__(self)

        self.prev = prev

        self.v     = 4
        self.hl    = ipv4.MIN_LEN / 4
        self.tos   = 0
        self.iplen = ipv4.MIN_LEN
        ipv4.ip_id = (ipv4.ip_id + 1) & 0xffff
        self.id    = ipv4.ip_id
        self.flags = 0
        self.frag  = 0
        self.ttl   = 64
        self.protocol = 0
        self.csum  = 0
        self.srcip = IP_ANY
        self.dstip = IP_ANY
        self.next  = b''

        if raw is not None:
            self.parse(raw)

        self._init(kw) #for what? DJ 20131218