code: func (i *Handle) parseService(msg []byte) (*Service, error) {
  
  	var s *Service
  
  	//Remove General header for this message and parse the NetLink message
  	hdr := deserializeGenlMsg(msg)
  	NetLinkAttrs, err := nl.ParseRouteAttr(msg[hdr.Len():])
  	if err != nil {
  		return nil, err
  	}
  	if len(NetLinkAttrs) == 0 {
  		return nil, fmt.Errorf("error no valid netlink message found while parsing service record")
  	}
  
  	//Now Parse and get IPVS related attributes messages packed in this message.
  	ipvsAttrs, err := nl.ParseRouteAttr(NetLinkAttrs[0].Value)
  	if err != nil {
  		return nil, err
  	}
  
  	//Assemble all the IPVS related attribute messages and create a service record
  	s, err = assembleService(ipvsAttrs)
  	if err != nil {
  		return nil, err
  	}
  
  	return s, nil
  }
docs: // parseService given a ipvs netlink response this function will respond with a valid service entry, an error otherwise