code: func (n *NetworkServerAPI) GetMulticastGroup(ctx context.Context, req *ns.GetMulticastGroupRequest) (*ns.GetMulticastGroupResponse, error) {
  	var mgID uuid.UUID
  	copy(mgID[:], req.Id)
  
  	mg, err := storage.GetMulticastGroup(storage.DB(), mgID, false)
  	if err != nil {
  		return nil, errToRPCError(err)
  	}
  
  	resp := ns.GetMulticastGroupResponse{
  		MulticastGroup: &ns.MulticastGroup{
  			Id:               mg.ID.Bytes(),
  			McAddr:           mg.MCAddr[:],
  			McNwkSKey:        mg.MCNwkSKey[:],
  			FCnt:             mg.FCnt,
  			Dr:               uint32(mg.DR),
  			Frequency:        uint32(mg.Frequency),
  			PingSlotPeriod:   uint32(mg.PingSlotPeriod),
  			ServiceProfileId: mg.ServiceProfileID.Bytes(),
  			RoutingProfileId: mg.RoutingProfileID.Bytes(),
  		},
  	}
  
  	switch mg.GroupType {
  	case storage.MulticastGroupB:
  		resp.MulticastGroup.GroupType = ns.MulticastGroupType_CLASS_B
  	case storage.MulticastGroupC:
  		resp.MulticastGroup.GroupType = ns.MulticastGroupType_CLASS_C
  	default:
  		return nil, grpc.Errorf(codes.Internal, "invalid group-type: %s", mg.GroupType)
  	}
  
  	resp.CreatedAt, err = ptypes.TimestampProto(mg.CreatedAt)
  	if err != nil {
  		return nil, errToRPCError(err)
  	}
  
  	resp.UpdatedAt, err = ptypes.TimestampProto(mg.UpdatedAt)
  	if err != nil {
  		return nil, errToRPCError(err)
  	}
  
  	return &resp, nil
  }
docs: // GetMulticastGroup returns the multicast-group given an id.