hal layer