The objective of bump mapping is to allow for the lighting calculation to be done for each texel as it would be done for the whole polygon. A dot product calculation is performed between the light direction and the surface at each pixel. The light data includes the colour (average combined light from the scene) and the direction and intensity. The surface data is the normal to the surface. During bump mapping it is this normal that is changing across the surface. For the example here the normal is perpendicular to the polygon for all the texels.
The light data is the same as without bump mapping, to support multiple independent lights over the single polygon will require either the lights to be combined into the one input parameter or for a bump map layer to be done for each light.
The normal at each texel location is changed due to the bump mapping data at that texel. The normal is perturbed, thus its name. The bump mapping data can be supplied in several formats such as, the XYZ delta/perturbation values or as a height map. The important calculation of what the new normal will be is done in hardware.
A height map is processed into a local slope value and then this is added to the Normal. Note that if Phong shading is being used at the same time then the normal that is being perturbed would not be perpendicular to the polygon surface, but this does not change the method as the supplied values are a perturbation and not an absolute normal.