code: def fragment(self, fragsize=1392):
          
          fnb = 0
          fl = self
          lst = list()
          while fl.underlayer is not None:
              fnb += 1
              fl = fl.underlayer
  
          for p in fl:
              s = raw(p[fnb].payload)
              nb = (len(s) + fragsize) // fragsize
              for i in range(nb):
                  q = p.copy()
                  del q[fnb].payload
                  q[fnb].len = SOMEIP.LEN_OFFSET_TP + \
                      len(s[i * fragsize:(i + 1) * fragsize])
                  q[fnb].more_seg = 1
                  if i == nb - 1:
                      q[fnb].more_seg = 0
                  q[fnb].offset += i * fragsize // 16
                  r = conf.raw_layer(load=s[i * fragsize:(i + 1) * fragsize])
                  r.overload_fields = p[fnb].payload.overload_fields.copy()
                  q.add_payload(r)
                  lst.append(q)
  
          return lst
docs: Fragment SOME/IP-TP