Q:

Offset-list inbound outbound clarification

I had a small clarification regarding the inbound outbound usage of offset-lists since I've been reading contradicting things regarding it.
So say we have a simple topology.

Both R1 and R2 are running RIPv2 with no auto-summary and R1 has 2 loopback interfaces configured. Now, when we go to R2, by default, the metric to reach the loopbacks of R1 will be 1. 
Now say we apply the following offset list on R2
offset-list 1 in 3
access-list 1 permit 1.1.1.0 0.0.0.255

Now if I'm right, the metric seen on R2 will be 4. Since we set an inbound metric as 3 and +1 because R1 sent his update with a hopcount of 1. That's fine.
Now for example, say I remove the access-list and offset list on R2 and add the following on R1's RIP process.
offset-list 2 out 4
access-list 2 permit 1.1.1.0 0.0.0.255

So now, my doubt is, will R2 receive the update with a metric of 4 or will it receive it with a metric of 5? 
The reason I ask is because I've learnt that when you apply an offset-list as outbound, it sends the metric as it is configured while when you set it as inbound, it adds the received metric to the offset-list value. Also if we follow the logic that routers increment hop count and then send the update out rather than increment it on receiving an update, this should be correct. But on GNS3 and in a few other places, it says that R2 will receive the update with hop count 5 when by my understanding, it should be 4. Is this a bug in GNS3 or is it how it really works?
I'm practicing everything with regard to Cisco 3700 series routers 12.4 IOS version.
Any help would be much appreciated!

A:

The metric in the offset list is added to the metric.
Cisco IOS IP Routing: RIP Command Reference:

Usage Guidelines
The offset value is added to the routing metric. An offset list with
  an interface type and interface number is considered extended and
  takes precedence over an offset list that is not extended. Therefore,
  if an entry passes the extended offset list and the normal offset
  list, the offset of the extended offset list is added to the metric.

Remember that the router receiving the metric will add a hop when it receives the metric. What it receives as the metric is the mectric for the previous hop, and it needs to add 1 for the hop to the previous router.
In your first example, the inbound offset metric (3) gets added to the R2 metric to R1 (1). The metric for R2 to the destination network totals 4 (1 actual hop, plus the 3 offset hops).
In your second example, the outbound offset metric (4) gets added to the R1 metric (0), and R2 gets the metric (4), which gets added to the R2 metric to R1 (1). The metric for R2 to reach the destination network is 5 (1 actual hop, plus the 4 offset hops).

